36

У меня есть несколько папок, которые были дублированы по ошибке, и я должен объединить их. Допустим, папка A содержит файл X, а папка B содержит файл Y, я хотел бы скопировать файл X в папку B. Но, конечно, я могу столкнуться с более сложными случаями, когда в папке A и B содержится один и тот же файл X: в этих случаях я хотел бы сохранить самую новую копию файла, поэтому rsync должен сравнить оба файла, а если источник старше, просто пропустите, в противном случае место назначения будет старшим, перезаписать.

Какие параметры я должен указать в командной строке rsync?

Это то, что я нашел в Google, но не думаю, что это правильно.

rsync -avz --ignore-existing src dest

Страница man как-то за мной.

Спасибо.

PS в тех случаях, когда файл существует в обеих папках, лучше было бы перезаписать более старый в целевую папку и в то же время сохранить копию более старого, как резервную копию на случай, если вам придется вернуться к предыдущий

1 ответ1

60

Я хотел бы использовать:

rsync -abviuzP src/ dest/
  • -i включает подробный формат, который показывает больше информации, чем формат по умолчанию
  • -b создает rsync файлы резервных копий, которые существуют в обеих папках, добавляя ~ к старому файлу. Вы можете контролировать этот суффикс с --suffix .suf
  • -u заставляет rsync передавать файлы пропуска, которые в dest более новые, чем в src
  • -z включает сжатие, что полезно при передаче легко сжимаемых файлов по медленным ссылкам
  • -P включает --partial и --progress
  • --partial заставляет rsync сохранять частично переданные файлы, если передача прервана
  • --progress показывает индикатор выполнения для каждой передачи, полезно, если вы переносите большие файлы

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