Используйте rsync для изменения только даты изменения папок / файлов

Я только что перенес 1,8 ТБ данных с внешнего жесткого диска на внутренний жесткий диск с помощью rsync, но я не добавил флаг «-t», поэтому «Дата изменения» для каждого файла на внутреннем жестком диске теперь дата, когда я запускал rsync.

Есть ли способ скопировать даты из исходных файлов в файлы назначения без необходимости удалять файлы назначения и снова запускать rsync с флагом «-t»?

2
задан 20 November 2013 в 23:22

2 ответа

Прикосновение к «измененному» файлу из другого эталонного файла невозможно выполнить с помощью rsync.

Однако мы можем использовать команду touch для этого.

touch -m -r source/path/file dest/path/file

Выше коснитесь «измененной» даты от источника к пути к файлу назначения.

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

 for i in *; do touch $i -m -r /path/to/source/$i; done
0
ответ дан 20 November 2013 в 23:22
  • 1
    Я должен использовать живой CD, чтобы сделать это? – Anonymous Platypus 19 May 2015 в 14:35

Рекурсивно с find и touch

cd /source/dates/dir
find . -exec touch -c -m -r {} /destination/dates/dir/{} \;

Изменение каталога важно для получения относительного пути с find.

0
ответ дан 20 November 2013 в 23:22

Другие вопросы по тегам:

Похожие вопросы: