查找损坏的文件

Duc*_*uck 3 osx file-copy corruption

我有一个包含无数文件的目录。一旦我尝试复制此目录,我就会收到一条消息,指出无法复制文件(损坏?)并且复制停止。

我可以在终端上输入任何命令来检查该目录树上的所有文件并列出所有无法复制或损坏的文件吗?我现在不想复制文件,只是为了检查如果我尝试是否无法复制/读取文件。

我在 OS X Mountain Lion 上,但我希望任何 unix 命令都可以正常工作。

谢谢。

注意:损坏是指无法读取或复制的文件。

cas*_*cas 6

  1. rsync可用于复制目录,并且如果任何错误导致目录rsync死亡,则能够从它终止的点重新启动副本。

    使用 rsync 的--dry-run选项,您可以查看将要复制的内容,而无需实际复制任何内容。该--stats--progress选项也将是有益的。和--human-readable或者-h是更容易阅读。

    例如

    rsync --dry-run -avh --stats --progress /path/to/src/ /path/to/destination/

    我不确定 Mac OS X 上是否默认安装了 rsync,但我已经在 Mac 上使用过它,所以我知道它绝对可用。

  2. 要快速检查子目录中的文件是否可以读取,您可以使用grep -r XXX /path/to/directory/ > /dev/null. 搜索正则表达式无关紧要,因为无论如何都会丢弃输出。

    STDOUT 被重定向到 /dev/null,所以你只会看到错误。

    我选择grep这里的唯一原因是因为它的-r递归选项。还有许多其他命令可以代替grep这里使用,如果与find.