尝试失败后如何 cp 剩余文件

尝试失败后如何 cp 剩余文件

我正在尝试将一个大目录从一个驱动器复制到另一个驱动器。我在完成之前错误地注销了,所以只复制了大约 80% 的文件。有没有办法复制剩余的文件而无需从头开始?

答案1

我会尝试,

rsync -a /from/file /dest/file

您可以使用其他选项--append,例如 , -P (--partial --progress)。看人同步了解更多信息。

或者,如果您正在使用,cp则使用cp -u.

man cp

-u, --update
     copy only when the SOURCE file is newer than the destination file or when the destination file is missing.

答案2

对于部分文件传输,cp可能不是您所需要的。

我建议改用rsync。即使传输失败,您也可以稍后重新运行该命令,它只会复制丢失的文件。

例子:

$ rsync -aPEmivvz from/ to/

(将复制from/to/目录中)

由于rsync每次传输后都会进行同步和检查,因此确保文件已正确复制是微不足道的。

开关组-aPEmivvz是我的标准每当通过网络或外部驱动器(包括插入设备,如 SD 卡等)复制文件时,都会进行选择。

这些是我几乎总是使用的开关:

-a:“存档”,包括-rlptgo(递归、符号链接作为符号链接、权限、时间、组、所有者)

-P:“部分进度”显示每个文件的漂亮进度条

-E:“可执行性”保留是否可执行

-m:“noempty”修剪空目录

-i:“summary”打印所有更新的更改摘要

-vv:“更详细”

-z: “压缩”

答案3

cp在这种情况下,您可能想要的是rsync

只需递归地将一个目录结构复制到新位置:

rsync -av /path/to/source /path/to/destination 

答案4

您还可以再次复制所有文件,要求每次覆盖确认,然后自动对问题回答“否”:

yes n | cp -i /source /dest

(您可能使用了更多选项,例如-r,所以只需添加它们,例如cp -pri /source /dest...)

相关内容