我想中断rsync
(ctrl-c
假设在文件传输一半后)并恢复,而不必重新发送已传输的数据。
我发现的 stackexchange/google 信息似乎是冲突的。我发现有些人说 use --partial
,有些人说 use --append
。对我来说,听起来他们都可以工作。
如果我想用 ctrl-c 中断 rsync,我应该使用--partial
or--append
吗?
如果两者都有效,什么时候使用其中一种比另一种更好?
答案1
重新启动,--partial
就足够了。--inplace
如果您确实不想rsync
创建合并现有复制数据和新数据的临时文件,例如,如果rsync
在目标文件夹中创建临时文件会遇到权限问题,请使用。
--append
仅当您可以保证部分复制的数据仍然与源相同时才使用。 (通常这是错误的优化。)
答案2
--append
假设该文件可能已经存在于目标中,它只是使 rsync 不检查已经存在的内容(但见下文)。--partial
告诉 rsync 不要删除部分传输的文件。
您还需要--inplace
with --partial
(它隐含于--append
)。
事实证明--inplace
实际上暗示着--partial
,这就是为什么--append
足够了(它暗示着--inplace
暗示着--partial
)。但--partial
仅此还不够,您需要--inplace
,否则 rsync 会创建临时文件而不是更新最终文件。