我只想rsync
在 Ubuntu 14.04 上传输更改的文件和新文件。我不想每次都转移一切。我不担心检查文件的内容是否真的改变了。存在类似的帖子,但我不确定,因为文档与这些帖子中所说的不一致。
中的文档rsync
说:
-u, --update
这会强制 rsync 跳过目标文件已存在且日期晚于源文件的任何文件。
http://ss64.com/bash/rsync_options.html
编辑:找到另一个(可能更官方的)文档页面。它说:
-u, --update
跳过接收器上较新的文件
https://download.samba.org/pub/rsync/rsync.html
我觉得这些措辞不好。首先,第一个说“日期”。我认为它实际上意味着“时间戳”。其次,更重要的是,这似乎意味着源和目标中具有相同时间戳的文件将被重新传输。文档明确指出,它只会在目标文件的时间戳(T_d
)比源文件时间戳(T_s
源文件:跳过传输 ifT_d > T_s
意味着它在T_d <= T_s
.
这对我来说是一个重要的问题,因为如果您想以尽可能少的工作(网络/io/cpu/时间)将所有新的和更改的文件从源文件夹传输到目标文件夹,更新标志可能只是重新传输每次的一切。
或者也许我错过了什么,或者误解了什么?
(由于题外话,这篇文章被 stackoverflow.com 拒绝。添加它和答案,以防将来可能对人们有所帮助。)
man
在标志的扩展中发现以下内容:https://download.samba.org/pub/rsync/rsync.html
因此,相等的情况检查文件的大小,并且仅在它们不同时才传输。我对此很好。