Я хочу реализовать всесторонний резервный сценарий на основе rsync
, таким образом, я просто экспериментирую теперь для решения корректных параметров на основе моего требования. В основном я хочу тот любой измененный файл, должен быть скопирован от источника до места назначения, независимо от его времени изменения (т.е. является ли исходный файл более старым/более новым, чем целевой файл, он должен быть скопирован, если содержание отличается). Однако это не работает:
../src/test.txt
../dst/test.txt
Выше структура папок. Когда я сначала работал ниже команды в первый раз, когда она скопировала test.txt
от src до dst папки.
rsync -avh --ignore-times src/ dst/
Затем я изменил содержание src/test.txt и работал выше команды снова, и на этот раз также она скопировала обновленный файл в dst папку.
Однако я затем изменил test.txt в dst папке и работал выше команды, но на этот раз, она не работала и не скопировала файл от src/до dst/папки. Но рассматривая этот ответ, это должно было работать, как я добавил --ignore-times
параметр.
Действительно ли это - ошибка с Ubuntu, или я делаю что-то не так? Какой параметр я должен добавить так, чтобы файл всегда копировался от источника до места назначения, когда содержание будет отличаться (даже когда целевой файл является более новым)?
--archive
равно -rlp t goD, в то время как -t означает
-t, --times
This tells rsync to transfer modification times along with the files and update them on the remote system
Но вы можете объединить это с --no-OPTION, как это [ 116]
rsync -avh --no-t --ignore-times src/ dst/
и он должен работать идеально
<час> РЕДАКТИРОВАТЬ: на самом деле --ignore-times
излишне, этого достаточно
rsync -avh --no-t src/ dst/
По некоторым причинам, --archive
или a
режим, кажется, не работает с --ignore-times
или --checksum
параметры. Однако простой рекурсивный режим копии (--recursive
или r
). Таким образом в моем случае, следующее сделало задание отлично:
rsync -vcr src/ dst/