复制许多文件而不会因 OSX 上的错误而停止

cfi*_*her 22 xcopy cp teracopy macos

我需要将几个 Gb 从外部 HD 复制到我的主 HD,并且某些文件会导致错误。如果我使用查找器执行此操作,它将在第一个错误处停止。

无论错误如何,有没有办法复制所有内容?类似于Windows版Teracopy 的副本?

小智 25

在终端输入

cp -Rp /Volumes/<source-volume>/<source-user>/<source-folder>/ /Volumes/<destination-volume>/<destination-folder>/
Run Code Online (Sandbox Code Playgroud)

目标文件夹应该是您正在创建的新文件夹。

如果您在运行后获得有关新文件夹的信息,您可以看到文件夹大小增加。

例子

cp -Rp /Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/ /Volumes/external/newfolder
Run Code Online (Sandbox Code Playgroud)

它将复制并显示任何它无法复制但不会停止的错误。

*如果您的目录名称包含空格,请在路径周围加上引号

例子

cp -Rp "/Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/" /Volumes/external/newfolder
Run Code Online (Sandbox Code Playgroud)

  • 关于 -Rp 标志的任何解释? (2认同)

ken*_*orb 5

您可以cp按照建议使用或rsync,但在 I/O 错误的情况下有时它不起作用。

\n\n

所以在这种情况下,你可以使用dd工具来修复损坏的特定文件。

\n\n
\n

dd代表\xe2\x80\x9c磁盘复制\xe2\x80\x9d。这是与 Mac OS X 捆绑在一起的命令行实用程序。还提供适用于 Windows 的免费版本。

\n\n

即使您熟悉命令行,也要极其小心,\n 因为如果您不\xe2\x80\x99t\n 指定正确的输入和输出,dd 可能会对数据造成不可恢复的损坏。你被警告了。

\n\n

dd 的参数很简单:

\n\n
    \n
  • if=path_of_file_with_IO_errors 指定输入路径
  • \n
  • of=path_of_clean_copy_to_create 指定输出路径
  • \n
  • conv=noerror,sync 告诉 dd 是容错的
  • \n
\n\n

您的输出路径不应与损坏的文件位于同一磁盘上。\n 实际上,您不应该\xe2\x80\x99 继续使用出现 I/O\n 错误的卡或磁盘,因为\xe2\x80\x99 很可能以免将来造成更多问题。\n 恢复数据后,您应该将其废弃或最多将其用于\n 存储不重要的内容。

\n\n

由于 I/O 错误,dd 创建干净副本可能比正常副本花费更多的时间。

\n\n

但它确实值得等待,因为现在我们有一个干净的文件,我们可以使用我们的诊断、预览和视频恢复工具库。

\n\n

I/O 错误是一件严重的事情,在恢复视频后报废卡可能是正确的做法。您还应该考虑到某些数量的素材将无法恢复,或者质量较差。

\n
\n\n

来源:http ://aeroquartet.com/wordpress/2012/06/06/how-to-copy-a-file-with-io-errors/

\n\n

例子:

\n\n
dd if=/Volumes/CD/broken_movie.avi of=~/Movies/broken_movie.avi conv=noerror,sync\n
Run Code Online (Sandbox Code Playgroud)\n\n

也可以看看:

\n\n\n