какая команда rsync «умно» объединяет две папки?


39

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

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

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

rsync -avz --ignore-existing src dest

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

Спасибо.

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

Ответы:


66

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

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

2
Действительно хороший, я закончил с использованиемrsync -abuP
ч.т.д.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.