由于文件系统已满,我的 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
)标志,任何不完整的文件都会从目标中删除。