并行检查 md5 文件

parallel check md5 file

我有一个包含很多行的 md5sum 文件。我想使用 GNU parallel 来加速 md5sum 检查过程。在 md5sum 中,当没有文件输入时,它会从 stdin 中获取 md5 字符串。我试过这个:

cat checksums.md5 | parallel md5sum -c {}

但是出现这个错误:

md5sum 445350b414a8031d9dd6b1e68a6f2367 testing.gz: No such file or directory

如何并行进行 md5sum 检查?

您需要选项 --pipe。在此模式下,并行将标准输入分成块,并通过标准输入将每个块提供给命令,详情请参阅 man parallel

cat checksums.md5 | parallel --pipe md5sum -c -

块的默认大小为 1 MB,可以使用 --block 选项更改。

假设 checksums.md5 的格式为:

d41d8cd98f00b204e9800998ecf8427e  My file name

运行:

cat checksums.md5 | parallel --pipe -N1 md5sum -c

如果您的文件很小:-N100

如果这不能加快您的处理速度,请确保您的磁盘足够快:md5sum 可以处理 500 MB/s。 iostat -dkx 1 可以告诉您磁盘是否存在瓶颈。