3

Существуют ли инструменты для Windows, которые могут

  • скопировать один каталог в другой
  • читать скопированный контент
  • генерировать MD5
  • если текущий файл идентичен ранее скопированному, создать жесткую ссылку в целевом каталоге вместо записи содержимого?

2 ответа2

5

Если вы копируете контент просто для того, чтобы сразу же после него создать жесткую ссылку, почему бы просто не сгенерировать жесткие ссылки сразу? Link Shell Extension облегчает эту конкретную работу.

Если есть какая-то причина, по которой вам нужно выполнить эту конкретную последовательность действий, автор LSE также написал инструмент командной строки под названием dupemerge, чтобы выполнить почти точно то, что вы просите.

Следует иметь в виду, что NTFS не выполняет семантику "копировать при записи" для жестких ссылок. Если что-то изменяет содержимое файла, все версии с жесткими ссылками немедленно "обновляются", так как все они по сути являются записями каталога и имеют одинаковый экстент данных на диске. Более того, многие программы выполняют процедуру «сохранить во временный файл, удалить оригинал, переименовать временное имя в старое имя», а не перезаписывать файл, что фактически нарушит другие жесткие ссылки на данные, поскольку они указывают на старый экстент данных.

1

Вы можете сделать это, используя FINDDUPE, который вы можете найти здесь.
Рассмотрим src как исходную папку, а dest как папку назначения, которую вы можете сделать:

xcopy /I /E src dest
finddupe -hardlink -ref src dest

Примечание: жесткие ссылки работают только на NTFS

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .