rsync --del 或 --delete

rsync --del 或 --delete

基于联机帮助页:

--删除期间,--删除

请求在传输发生时逐步完成接收方的文件删除。每个目录的删除扫描是在检查每个目录的更新之前完成的,因此它的行为类似于更高效的 --delete-before,包括在更新任何每个目录的过滤器文件之前进行删除。该选项首先在 rsync 2.6.4 版本中添加。有关文件删除的更多详细信息,请参阅 --delete (隐含的)。

还有--delete-before--delete-after。我不太明白这些和 之间的区别--delete--delete如果不是之前、期间或之后,什么时候删除文件?

文档还说:

因此,当连接两端至少为 3.0.0 时,指定 --delete 时的默认删除模式现在为 --delete-during(使用 --del 或 --delete-during 来请求这种改进的删除模式)明确)。

我想这意味着--del旨在取代--delete。有什么理由使用--deleteover吗--del?使用--del小于 3.0.0 的连接会导致问题吗? (我假设这是 rsync 版本)。

答案1

然后--delete-after,该过程将发送所有需要添加/更改的文件,然后当完成后,它将删除所有不必要的文件。这可能很有用,因为这意味着目标始终拥有所有文件的副本;如果传输中断,则不会丢失任何内容。但是,如果您要传输大文件(例如异地备份),那么您可能暂时需要更多空间来同时保存旧文件和新文件。

然后--delete-before,该过程将在传输开始之前删除文件;这意味着您不需要大量临时空间,但如果传输中断,那么您可能在远程端没有任何文件的副本。

使用--del--delete-duringthen 它将删除每个目录中的文件;这是一个中间的房子并且效率更高;它部分受到“之前”的影响,但仅限于一个目录(因此数据丢失的可能性较小)。

--delete--delete-during如果与服务器 3.0.0 或更高版本通信,以及--delete-before与旧版本通信,则默认为。因此,--delete除非您有特定的调整需求,否则我建议仅使用。

相关内容