我正在尝试将一个大目录从一个驱动器复制到另一个驱动器。我在完成之前错误地注销了,所以只复制了大约 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
...)