目前,我有两个目录A/和B/,除了时间戳外,它们在各个方面都是相同的。因此,如果我运行命令:
rsync --dry-run -crvv A/ B/然后所有文件都标记为“最新”,而命令:
rsync --dry-run -rvv A/ B/显示所有文件将从A/复制到B/。
我的问题是:既然我知道文件是相同的(就内容而言),那么有没有办法(通过rsync或其他方式)设置B文件的时间戳与A/文件的时间戳相同,而不将所有文件从A/复制到B/?
谢谢
发布于 2012-11-21 13:43:30
使用-t (保存时间戳)和--size-only只会比较文件的大小。如果大小匹配,rsync将不会复制该文件,但由于指定了-t,因此它将更新目标文件上的时间戳,而不重述它。
确保不要使用-u (update),因为这将跳过已经存在的文件,并完全跳过更新时间戳。
我的问题是最初没有使用rsync将一堆文件复制到一个新驱动器,因此时间戳被更新到当前时间。我使用下面的命令在相当长的时间内正确同步所有内容:
rsync -vrt --size-only /src /dest发布于 2012-03-30 13:58:29
如果大小匹配,使用--仅大小将导致rsync跳过比较文件时间戳(因此是文件内容)。将此与-times相结合,将时间戳复制到目标树上。
发布于 2017-09-29 14:36:46
使用源(例如/path/to/source)目录作为触摸命令的引用。只需将cd转到目标目录,然后执行
find -type f -exec touch -r /path/to/source/{} {} \;您不能用rsync复制子秒时间戳(尚未)。
这也适用于目录和伪文件(只需删除或更改-type f)。
https://serverfault.com/questions/344731
复制相似问题