我刚刚使用 rsync 将 1.8TB 的数据从外部硬盘传输到内部硬盘,但我没有添加“-t”标志,因此内部硬盘上每个文件的“修改日期”现在是我运行 rsync 的日期。
有没有办法将日期从源文件复制到目标文件,而不必删除目标文件并使用“-t”标志再次运行 rsync?
答案1
递归find
与touch
cd /source/dates/dir
find . -exec touch -c -m -r {} /destination/dates/dir/{} \;
为了获取相对路径,更改目录非常重要find
。
答案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