并行检查md5文件

时间:2015-12-04 06:37:06

标签: bash gnu-parallel md5sum

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

cat checksums.md5 | parallel md5sum -c {}

但是得到了这个错误:

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

如何与md5sum检查并行?

2 个答案:

答案 0 :(得分:4)

假设checksums.md5的格式为:

d41d8cd98f00b204e9800998ecf8427e  My file name

执行命令

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

如果您的文件很小:-N100

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

答案 1 :(得分:1)

您需要选项--pipe。在此模式下,并行将stdin拆分为块并通过stdin将每个块提供给命令,有关详细信息,请参阅man parallel

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

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