在我将 50+ GB(30,000 个文件,包括不同格式的文件)从内部硬盘驱动器复制到外部驱动器后,有什么方法可以确定是否所有内容都已正确复制?另外,如果我通过取消操作在两者之间停下来,然后在继续操作时说合并,正确性会受到影响吗?
我可以使用类似的应用程序,back-in-time
但我在复制文件时非常挑剔,下次我打算使用copy
操作并说merge
而不是replace
. 复制大量文件时是否可取?
在我将 50+ GB(30,000 个文件,包括不同格式的文件)从内部硬盘驱动器复制到外部驱动器后,有什么方法可以确定是否所有内容都已正确复制?另外,如果我通过取消操作在两者之间停下来,然后在继续操作时说合并,正确性会受到影响吗?
我可以使用类似的应用程序,back-in-time
但我在复制文件时非常挑剔,下次我打算使用copy
操作并说merge
而不是replace
. 复制大量文件时是否可取?
我正在使用hashdeep来验证备份/恢复,并偶尔检查 RAID 中的文件系统损坏。
速度取决于您使用的散列函数(有些比其他函数更占用 CPU)以及磁盘的读取速度。在我的系统
hashdeep
上,可以使用 md5 和 300 MB/s 的读取速度处理或验证大约 1 TB/小时。计算校验和并将其存储在文件中的示例:
参数:
r
– 递归l
– 使用相对路径c
– 指定散列函数.
– 从当前目录开始递归>
– 将输出重定向到指定文件请参阅手册页。
验证校验和并打印差异列表的示例:
参数:
a
– 审计(与已知校验和列表比较)v
– 详细(获取不匹配列表,多个v
s 表示更详细)k
– 已知哈希文件请注意,截至 2016 年 3 月,它
hashdeep
似乎已被放弃。它看起来像是rsync的完美任务。Rsync 正在比较和复制差异。
当我看到您的问题时,该
rsync
实用程序首先出现在我的脑海中。执行以下操作可以快速显示目录中的文件a
而不是目录中的文件b
:这是一个不错的选择,因为您还可以比较文件的内容以确保它们匹配。
rsync
的 delta 算法针对这种类型的用例进行了优化。然后,如果您想b
匹配 的内容a
,您可以删除-n
执行实际同步的选项。一些相关问题:
如果 GUI 应用程序建议在文件和目录比较工具?不要为你做,尝试
diff -rq /path/to/one /path/to/other
安静地递归两个目录,只将差异记录到屏幕上。你说的情况太复杂了。虽然您可以编写一个脚本来计算您要复制的所有文件的 MD5,然后将它们与复制的文件进行比较:
如果你想要简单快速的东西(它在非常复杂的场景中不起作用),你可以使用Meld
在“如果所有内容都已正确复制”上,我使用了修改后的 cp(或 mv),其中包括校验和(可选地存储在 xattr 中,因此只需为源计算一次) http://sourceforge.net/projects /crcsum/