从联机帮助页rsync
-u, --update
这会强制 rsync 跳过目标上存在且修改时间比源文件更新的任何文件。 (如果现有目标文件的修改时间等于源文件的修改时间,并且大小不同,则它将被更新。)请注意,这不会影响目录、符号链接或其他特殊文件的复制。此外,发送者和接收者之间的文件格式差异始终被认为对于更新来说足够重要,无论对象上的日期是什么。换句话说,如果源有一个目录,而目标有一个文件,则无论时间戳如何,传输都会发生。此选项是传输规则,而不是排除,因此它不会影响进入文件列表的数据,因此不会影响删除。它只是限制接收者请求传输的文件。
没有-u
,
Rsync 使用“快速检查”算法(默认情况下)查找需要传输的文件,该算法查找大小或上次修改时间已更改的文件。当快速检查表明文件的数据不需要更新时,将直接在目标文件上对其他保留的属性(根据选项的请求)进行任何更改。
您能指出使用-u
和不使用之间有什么区别吗?
是否-u
决定要传输的文件比没有传输的文件少,因此传输时间是否比没有-u
传输的时间更长?-u
-u
谢谢。
答案1
如果没有-u
它,很简单:“如果源处的事物与目标处的事物不同,则通过从源复制到目标来使它们相同”。即使这意味着用旧的东西替换新的东西。
通过-u
此规则,附加“...除非两个事物的类型相同(文件/符号链接/设备节点/等)并且目标比源更新,否则跳过它”。