在不停止OSX错误的情况下复制许多文件


16

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

有没有一种方法可以复制所有内容,无论错误如何?类似于Windows中的Teracopy副本?


好吧,如果发生错误,您可能不想复制该文件。还是只想跳过发生错误的地方?而且,实际上更好的问题是:为什么会出现这些错误?这些甚至是什么错误?
slhck 2012年

我想复制所有其他文件,并处理这些错误,无论以后如何处理。
cfischer 2012年

您具体遇到哪些错误?
slhck 2012年

1
我希望他们将Windows Vista +功能添加到finder并继续复制,同时警告您错误。
马修·洛克

Answers:


21

在终端中输入

cp -Rp /Volumes/<source-volume>/<source-user>/<source-folder>/ /Volumes/<destination-volume>/<destination-folder>/

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

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

cp -Rp /Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/ /Volumes/external/newfolder

它会复制并显示所有无法复制但不会停止的错误。

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

cp -Rp "/Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/" /Volumes/external/newfolder

2
关于-Rp标志的任何解释?
user337085'8

对于osx,这必须是不同的,在linux上-Rp表示重新使用和保留属性,与错误无关。
Benubird

1
man cp在macOS上告诉我:“在-R模式下,即使检测到错误,cp也会继续复制。”
adriaan

2

您可以cp按照建议使用或rsync,但是在发生I / O错误的情况下有时将无法使用。

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

dd代表“磁盘复制”。这是Mac OS X附带的命令行实用程序。还提供Windows的免费版本。

即使您熟悉命令行,也要格外小心,因为如果您未正确指定输入和输出,dd可能会对数据造成不可恢复的损害。你被警告了。

dd的参数很简单:

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

您的输出路径不应与损坏的文件位于同一磁盘上。实际上,您不应继续使用出现I / O错误的卡或磁盘,因为将来可能会引起更多问题。恢复数据后,您应该将其报废或最多使用它来存储不重要的内容。

由于I / O错误,与普通副本相比,dd可能会花费更多时间创建干净副本。

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

I / O错误是一项严肃的工作,恢复视频后报废卡可能是正确的选择。您还应该考虑将无法恢复一定数量的素材,或者质量不及星体。

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

例:

dd if=/Volumes/CD/broken_movie.avi of=~/Movies/broken_movie.avi conv=noerror,sync

也可以看看:


1
我听说dd的作者想将其命名为cc,以表示副本,但cc已由C编译器使用。我比“磁盘复制”更好
蒂姆·布特(TimBüthe)

1

我将Beyond Compare用于此目的(它是商业软件,但有免费试用版)。您告诉它复制文件,文件夹或整个驱动器或任何组合,它完成到任务结束并在执行过程中报告问题。这无助于恢复任何损坏的文件,但是无论遇到多少问题,它都能完成工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.