У меня есть одна большая папка "X" в моей домашней директории, и ее устаревшая копия на флешке - Y. Что является аналогом rm Y; cp X Y
, но без перезаписи уже существующих файлов?
4 ответа
Rsync имеет гораздо больше свойств, чем упоминалось в предыдущем ответе. Вы должны посмотреть на них сами:
man rsync
Но для вашей проблемы я бы предложил:
rsync -a --delete X Y
Таким образом, получатель (Y) удалит любой файл, который у него есть, но не в X. Убедитесь, что вы все сделаете правильно. При неправильном использовании root может легко убить вашу систему ... :)
Посмотрите на rsync(1). Он предназначен для того, чтобы делать именно то, что вы хотите.
rsync -av X Y
Он поддерживает удаленное копирование через собственный протокол или ssh, но также может использоваться локально.
В зависимости от того, какое поведение вы хотите, вы также можете передать опцию --update
. Это скажет rsync не перезаписывать файлы, которые уже существуют на цели и являются более новыми, чем те, которые находятся в источнике.
Если вы хотите удалить дополнительные файлы (т.е. файлы, которые существуют в Y, но не в X), вы можете добавить опцию --delete
.
Я думаю, что некоторые функции, которые вы ищете в опции -u (обновление), на самом деле существуют в этой опции:
«--ignore-Существующий» - пропустить обновление файлов, которые существуют на приемнике
Попробуйте использовать rsnyc, возможно, с помощью следующей команды:
rsync -avzu /home/x /y
-u
= не перезаписывать файл в месте назначения, если он изменен