使用 rsync 仅更改文件夹/文件的修改日期

使用 rsync 仅更改文件夹/文件的修改日期

我刚刚使用 rsync 将 1.8TB 的数据从外部硬盘传输到内部硬盘,但我没有添加“-t”标志,因此内部硬盘上每个文件的“修改日期”现在是我运行 rsync 的日期。

有没有办法将日期从源文件复制到目标文件,而不必删除目标文件并使用“-t”标志再次运行 rsync?

答案1

递归findtouch

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

相关内容