max*_*zig 4 ssh cp rsync timestamps
是否可以通过同步文件rsync
并rsync
只比较 mtime 信息?
或者是否有其他工具可以完成这项工作?
这意味着如果 src 比目标新,这样的工具只会将 src 复制到目标。可与 GNU 相媲美cp --update
- 但也优于 ssh ...
对的,这是可能的。rsync
也有--update
,但它rsync
仍然使用它的增量传输算法,以防 src 更新。rsync
提供--whole-file
禁用此算法的选项。因此,
$ rsync --update --whole-file ...
Run Code Online (Sandbox Code Playgroud)
应该具有 src 文件仅在较新时复制到目标的效果。并且只应使用 mtime 检查。
有几个原因可以避免在特殊用例中使用增量传输算法。主要是性能原因,也可能是非常特殊情况下的传输量。
从手册页引用:
-W, --whole-file
使用此选项,不使用 rsync 的增量传输算法,而是按原样发送整个文件。如果在源计算机和目标计算机之间的带宽高于磁盘带宽(尤其是当“磁盘”实际上是网络文件系统时)时使用此选项,则传输速度可能会更快。当源和目标都指定为本地路径时,这是默认值,但前提是没有批量写入选项有效。
网络文件系统的案例应该是最常见的。
此外,由于增量传输算法是一种启发式算法,因此您可以想象算法最终传输整个文件并仅增加(时间和空间)开销的文件。