заставить rsync перезаписать файлы в месте назначения, даже если они новее

43

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

tldr: есть ли способ заставить rsync перезаписать файлы в месте назначения?

редактирование: я выполняю rsync -avhpКогда я хочу восстановить резервную копию, я использую ту же команду, поменяв местами «to» и «from». Поэтому он пытается скопировать файлы с резервного диска на место на моем компьютере, к которому они принадлежат.

jedipixel
источник
14
rsyncвсегда будет перезаписывать файлы в месте назначения, если вы не скажете этого не делать (опция -u, --update). Проверьте аргументы командной строки.
Scai
Можете ли вы поделиться своей фактической командой rsync? Rsync перезапишет старые файлы новыми, поэтому вы, скорее всего, сравниваете файлы только по метке времени, и даты между двумя компьютерами немного не совпадают.
SLM
Я попытался использовать, touchчтобы сделать файлы, которые я хочу заменить, «более старыми», чем моя резервная копия, но он по-прежнему не заменяет существующие в моей домашней папке.
Джедипиксель
Может быть, '-I --modify-window = 999999999' у вас работает?
jelle foks

Ответы:

47

В руководстве сказано:

-I, --ignore-times   don't skip files that match size and time

С более подробной информацией:

-I, --ignore-times

Обычно rsync пропускает любые файлы, которые уже имеют одинаковый размер и имеют одинаковую метку времени изменения. Эта опция отключает эту «быструю проверку», вызывая обновление всех файлов.

луч
источник