我只想在Ubuntu 14.04上使用rsync传输已更改和新文件。 每次我都不想转移一切 我不担心检查文件的内容是否真的改变了。 类似的post存在,但我不确定,因为文档不符合这些post中所说的。
rsync的文档说:
-u, --update这将强制rsync跳过目标文件已经存在并且具有比源文件晚的date的任何文件。
http://ss64.com/bash/rsync_options.html
编辑 :find另一个(可能更正式的)文档页面。 它说:
-u, --update更新跳过接收器上较新的文件
https://download.samba.org/pub/rsync/rsync.html
我觉得这些措辞不好。 首先,第一个说“date”。 我认为这实际上意味着“时间戳”。 其次,更重要的是,这似乎意味着源文件和目标文件中具有相同时间戳的文件将被重新传输。 文档清楚地表明,当目标文件比源文件时间戳( T_s )更新(即更晚的)时间戳( T_d )时,它将仅跳过文件,这意味着当目标文件大于或等于到源文件:如果T_d > T_s意味着它在T_d <= T_s时传输,则跳过传输。
这对我来说是一个很重要的问题,因为如果你想以尽可能less的工作(network / io / cpu / time)将源文件夹中的所有新文件和更改文件传输到目标文件夹,更新标志可能会重新传输一切每一次。
或者也许我错过了什么,或者误解了什么?
(这个post是由于偏离主题而被拒绝的,添加它和答案在这里以防万一它可能会帮助未来的人)
在扩大旗帜的man发现了以下几点:
-u, --update这会强制rsync跳过目标上存在的任何文件,并且修改时间比源文件更新。 (如果现有目标文件的修改时间等于源文件的修改时间,如果大小不同,它将被更新。)
https://download.samba.org/pub/rsync/rsync.html
因此,平等的情况下检查文件的大小,只有在不同的情况下才转移。 我很好。