单个文件的 rsync 看似有效但实际上什么也没做?

单个文件的 rsync 看似有效但实际上什么也没做?

由于文件系统已满,我的 5 GB cp 作业失败。调整文件系统大小后,我尝试使用 rsync 恢复单个文件副本。

$ rsync --progress /source/bigfile ./bigfile

但奇怪的是,它似乎没有意识到文件已经在那里,似乎从头开始。但没有说它把任何文件放在哪里。

如果我将大文件移开并重新启动 rsync,该文件将永远不会显示!

$ mv bigfile bigfile-away
$ rsync --progress /source/bigfile ./

rsync 似乎再次进行复制,但我从未看到该文件出现。

这很奇怪!

答案1

您正在同一系统的两个部分之间进行复制(或者至少看起来是这样rsync)。这会禁用 的大部分优化功能,rsync并且恢复到不超过cp.

如果可以的话保证该文件没有更改,您可以使用--append。对于可中断的副本,您可能需要--partial

您可能想使用--times( -t) 来保留文件时间戳,听起来您想使用--inplace(该标志暗示了这一点--append)。

rsync -tvP --append /source/bigfile ./bigfile

复制文件时,rsync通常将其写入临时文件名,然后立即将其移动到正确的文件名。文件名以点开头,因此它被归类为;你可以用 看到它ls -A。此外,如果没有--partial(部分-P)标志,任何不完整的文件都会从目标中删除。

相关内容