Rsync только измененные файлы

14

Можно ли rsyncперенести все файлы в каталог, которые были изменены или были созданы? Мне не нужно что-то более сложное, чем проверка различий CRC; файлы с разными временными метками и / или размерами файлов считаются изменениями.

Со страницы руководства у меня сложилось впечатление, что это возможно, но мне нужно небольшое руководство по тому, какой набор параметров передать rsync.

instanceofTom
источник

Ответы:

19

Чтобы просто синхронизировать две директории:

$ rsync /source/path/* /dest/path/

Или, если вы хотите сделать целое дерево:

$ rsync -a /source/path/ /dest/path/

«-a» указывает режим «архива», где он дублирует дерево настолько близко, насколько это возможно.

Мне нравится добавлять флаги vи Pтам, чтобы я мог посмотреть, как это работает:

$rsync -avP /source/path/ /dest/path/

«-v» включает подробный режим, так что вы можете видеть, что он делает (в нем перечислены файлы при копировании), а «-P» включает прогресс, поэтому вы можете видеть, сколько времени занимает копирование каждого файла (процентное копирование, оставшееся время и т. д.) и позволяет увидеть, насколько далеко вы проходите через копию.

Majenko
источник
3
... и, возможно, добавьте флаг z, чтобы использовать сжатие для передачи
Linker3000
4
... если вы переводите в удаленное место
Majenko
14

Так rsyncработает по умолчанию (по крайней мере, в Linux). Со страницы руководства :

Rsync находит файлы, которые необходимо передать, используя алгоритм «быстрой проверки» (по умолчанию), который ищет файлы, которые изменились в размере или в момент последнего изменения. Любые изменения в других сохраненных атрибутах (в соответствии с параметрами) вносятся в файл назначения непосредственно, когда быстрая проверка показывает, что данные файла не нужно обновлять.

Роб Х
источник
Ах, я запутался, неправильно прочитав документацию. Спасибо :)
instanceFom