如果我创建两个同名但修改时间不同的目录:
$ mkdir -p dir1/dir ; sleep 2 ; mkdir -p dir2/dir
$ stat -c %y dir*/dir
2021-09-15 10:54:55.000819360 +0100
2021-09-15 10:54:57.007490593 +0100
然后rsync
与--size-only
选项一起使用:
$ rsync -rtvh --size-only dir1/ dir2/
sending incremental file list
./
dir/
sent 72 bytes received 23 bytes 190.00 bytes/sec
total size is 0 speedup is 0.00
我希望没有什么改变,因为尺寸是一样的。但是,修改时间dir2/dir
确实发生了变化:
$ stat -c %y dir*/dir
2021-09-15 10:54:55.000819360 +0100
2021-09-15 10:54:55.000819360 +0100
当大小相同时,文件也会发生这种情况。
为什么要这样做?
如果目录包含大量数据(其他嵌套目录和文件),也会发生这种情况。目录实际上被覆盖了,还是 rsync 只是更新了时间戳?
Rsync 只是更新元数据(仅)以按照您的要求与
-t
标志匹配。如果您查看手册(类型
man rsync
),请阅读说明:该
--size-only
标志仅更改此“快速检查”算法,它不会完全跳过文件: