Я только что перенес 1,8 ТБ данных с внешнего жесткого диска на внутренний жесткий диск с помощью rsync, но я не добавил флаг «-t», поэтому «Дата изменения» для каждого файла на внутреннем жестком диске теперь дата, когда я запускал rsync.
Есть ли способ скопировать даты из исходных файлов в файлы назначения без необходимости удалять файлы назначения и снова запускать rsync с флагом «-t»?
Прикосновение к «измененному» файлу из другого эталонного файла невозможно выполнить с помощью rsync.
Однако мы можем использовать команду touch
для этого.
touch -m -r source/path/file dest/path/file
Выше коснитесь «измененной» даты от источника к пути к файлу назначения.
Это может быть дополнительно написано в сценарии, например, ниже для всех файлов в данном каталоге назначения при условии, что имена файлов идентичны:
for i in *; do touch $i -m -r /path/to/source/$i; done
Рекурсивно с find
и touch
cd /source/dates/dir
find . -exec touch -c -m -r {} /destination/dates/dir/{} \;
Изменение каталога важно для получения относительного пути с find
.