只使用 mtime 与 rsync 比较?

max*_*zig 4 ssh cp rsync timestamps

是否可以通过同步文件rsyncrsync只比较 mtime 信息?

或者是否有其他工具可以完成这项工作?

这意味着如果 src 比目标新,这样的工具只会将 src 复制到目标。可与 GNU 相媲美cp --update- 但也优于 ssh ...

max*_*zig 5

对的,这是可能的。rsync也有--update,但它rsync仍然使用它的增量传输算法,以防 src 更新。rsync提供--whole-file禁用此算法的选项。因此,

$ rsync --update --whole-file ...
Run Code Online (Sandbox Code Playgroud)

应该具有 src 文件仅在较新时复制到目标的效果。并且只应使用 mtime 检查。

有几个原因可以避免在特殊用例中使用增量传输算法。主要是性能原因,也可能是非常特殊情况下的传输量。

从手册页引用:

-W, --whole-file

使用此选项,不使用 rsync 的增量传输算法,而是按原样发送整个文件。如果在源计算机和目标计算机之间的带宽高于磁盘带宽(尤其是当“磁盘”实际上是网络文件系统时)时使用此选项,则传输速度可能会更快。当源和目标都指定为本地路径时,这是默认值,但前提是没有批量写入选项有效。

网络文件系统的案例应该是最常见的。

此外,由于增量传输算法是一种启发式算法,因此您可以想象算法最终传输整个文件并仅增加(时间和空间)开销的文件。

  • 我不明白为什么只有 `--update` (`-u`) 是不够的。 (2认同)