Я хотел бы синхронизировать содержимое двух каталогов.
- Без перезаписи, но для создания копии, если два файла имеют одинаковое имя, но разный размер
- Без дублирования, если два файла имеют одинаковое имя и размер.
- Работать рекурсивно
Пока что я нашел следующую команду, которая может сработать
$ rsync -varE --progress ~/folder /volumes/server/folder
Но я не совсем уверен, что -E
делает этот флаг. Он был предложен пользователем на bananica.com, но не смог найти его описание в руководстве. Будет ли это успешно делать то, что мне нужно?
решение1
-E на самом деле сохраняет расширенные атрибуты в OS X, но -a (--archive) подразумевает -p (--perms), что подразумевает --executability.
-b (--backup) добавляет тильду в конец файлов, которые обычно перезаписываются:
rsync -ab ~/folder /Volumes/server/
-b --suffix _old
переименовал бы file.txt в file.txt_old
rsync по умолчанию сравнивает как размеры файлов, так и время их изменения. --size-only сравнивает только размеры. -c сравнивает контрольные суммы, но это медленнее.