![使用 rsync 时,需要在另一个文件之前传输特定文件](https://linux22.com/image/103816/%E4%BD%BF%E7%94%A8%20rsync%20%E6%97%B6%EF%BC%8C%E9%9C%80%E8%A6%81%E5%9C%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E4%B9%8B%E5%89%8D%E4%BC%A0%E8%BE%93%E7%89%B9%E5%AE%9A%E6%96%87%E4%BB%B6.png)
来自 rsync 联机帮助页
已排序的转移订单
Rsync 始终将指定的文件名排序到其内部传输列表中。这可以处理同名目录的内容合并在一起,可以轻松删除重复的文件名,并且当文件以与命令行上给出的顺序不同的顺序传输时,可能会让人感到困惑。
如果您需要在另一个文件之前传输特定文件,请将文件分成不同的 rsync 调用,或者考虑使用 --delay-updates (这不会影响排序的传输顺序,但确实会使最终的文件更新阶段发生得更快)。
由于 --delay-updates 不会影响排序的传输顺序,因此如果我们“需要在另一个文件之前传输特定文件”,它有何帮助?
谢谢。
答案1
如果我们“需要在另一个文件之前传输特定文件”,它有何帮助?
正常情况下,一次复制一个文件。因此,如果顺序不正确,那么“错误”的文件可能会在其他文件之前更新相当长的一段时间。
使用--delay-updates,文件会在一段时间内复制,但最后很快就会正确地放入文件系统中。文件可能会被乱序复制,但目的地上的人可能能够分辨出的时间窗口比正常情况要小得多。
它并没有修复顺序,但确实降低了竞争条件失败的可能性。