自动对文件夹中的每个文件进行哈希处理?

自动对文件夹中的每个文件进行哈希处理?

我有相当多的 FTP 文件夹,每个月都会添加一些,并且希望保留某种方法来验证它们的完整性,例如文件 MD5SUMS、SHA256SUMS 等,我可以使用脚本创建这些文件。例如:

find ./ -type f -exec md5sum $1 {} \;

这工作正常,但是当我每次对每个 shaxxx 总和运行它时,它会创建一个我们真正不想要的 MD5SUMs 文件的总和。

有没有更简单的方法、脚本或常用方法将所有文件散列到其总和文件中而不会引起此类问题?我真的可以使用更好的选择。

答案1

您是说问题在于您正在对生成的文件重新运行 md5sum 吗?您可以跳过这些文件。当然,使用 gnu parallel 来加快速度:

find . -type f -a \! -name MD5SUMS | parallel -j+0 "md5sum {} >>MD5SUMS"

然而,从您的描述来看,我感觉我遗漏了一些东西。

编辑:修正重定向并添加 xargs 信息:

请注意,您不必使用 parallel,xargs 也可以正常工作(我只是认为尝试 parallel 很有趣)。以下是等效的 xargs 调用:

find . -type f -a \! -name MD5SUMS -print0 | xargs -0 sum >> MD5SUMS

答案2

我需要验证包含大量文件的备份/镜像的完整性,最后写了一个名为 MassHash 的命令行程序。它是用 Python 编写的。还有 GTK+ Launcher。你可能想看看...

http://code.google.com/p/masshash/

答案3

尝试md5deep

sudo apt-get install md5deep
md5deep -rel "test_directory" > results_file.md5

“这是我将针对目录运行的命令,以检查是否有任何更改。”

md5deep -X list.txt -r Pictures/

http://linhost.info/2010/05/compare-hashes-with-md5deep-part-2/

相关内容