1

У меня есть папка, которая еженедельно резервируется на внешний диск, примерно 150 ГБ. Есть около 36 000 музыкальных файлов. Я кардинально изменил структуру папок, так что почти половина этих файлов находится по другому пути. Программа синхронизации, которую я использую (Syncback), создала сводную информацию о синхронизации до начала синхронизации, сообщая, что она удалит все "отсутствующие" файлы с внешнего диска, а затем скопирует их заново, используя новую структуру папок. Это займет большую часть ночи при медленном соединении USB.

Существует ли программа для Windows или Unix, которая может определить, был ли файл перемещен, и просто переместить файл назначения в новое место?

3 ответа3

2

Да, есть программа с открытым исходным кодом под названием Unison, которая делает именно то, что вы описываете: http://www.cis.upenn.edu/~bcpierce/unison/ . Он запоминает значение хеш-функции для каждого файла, который вы синхронизируете. Если файл перемещается, Unison может сказать, что это тот же файл, потому что он все еще имеет то же хеш-значение. Это может занять немного времени, если потребуется пересчитать хэши для большого количества файлов, но, вероятно, менее затратно, чем передача всех файлов по медленному соединению. Я использую Unison уже много лет, и это здорово. Работает на Windows и Unix.

0

Я использую Bvckup 2, и он поддерживает это. Фактически, "обнаружение переименования и перемещения" теперь является в значительной степени стандартной функцией во всех программах резервного копирования и синхронизации файлов. Я думаю, что у SyncBack тоже была опция для этого, по умолчанию она была отключена.

-1

Программа rsync выполняет ту же функцию, и это стандартная утилита Linux. Существует множество вариантов, но в основном вам, вероятно, понадобятся -a (для сохранения разрешений) и -P (для отображения прогресса). Существует также -e ssh для передачи данных по ssh-соединению.

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