根据该手册:
-删除每个目录删除扫描都是在每个目录检查更新之前完成的,因此它的行为就像一个更高效的删除之前,包括在每个目录筛选器文件被更新之前进行删除。此选项首先在rsync版本2.6.4中添加。有关文件删除的更多细节,请参见--删除(这是隐含的)。
还有--delete-before
和--delete-after
**。我不太明白这些和** --delete
**之间的区别。** --delete
什么时候删除文件,如果不是在之前、期间还是之后?
医生还说:
因此,当您指定--delete时,默认的delete模式是--delete--在连接两端至少为3.0.0期间(使用-del或-delete)显式请求这种改进的删除模式。
我想这意味着--del
打算取代--delete
**。是否有任何理由使用** --delete
之上的--del
**?使用** --del
会导致小于3.0.0的连接出现问题吗?(我猜这是rsync版本)。
发布于 2016-08-18 00:33:27
使用--delete-after
,该过程将发送所有需要添加/更改的文件,然后当完成时,它将删除所有不必要的文件。这可能很有用,因为这意味着目标始终拥有所有文件的副本;如果传输被中断,则不会丢失任何文件。但是,如果您正在传输大型文件(例如场外备份),那么您可能暂时需要更多的空间来同时保存旧文件和新文件。
使用--delete-before
,进程将在传输开始之前删除文件;这意味着您不需要大量临时空间,但是如果传输被中断,则可能在远程端没有任何文件的副本。
使用--del
或--delete-during
时,它将删除每个目录中的文件;这是一个介于前后之间的中间部分,而且效率更高;它部分受到“以前”的影响,但它仅限于一个目录(因此数据丢失的可能性更小)。
如果与服务器3.0.0或更高版本对话,--delete
将默认为--delete-during
,如果与旧版本对话,则默认为--delete-before
。因此,我建议您只使用--delete
,除非您有特定的调优需求。
https://unix.stackexchange.com/questions/304075
复制相似问题