并行 sha256sum 命令

发布时间 2024-01-11 12:13:03作者: 方而静

之前为文件夹里的文件生成 SHA-256 摘要时,我使用的是

sha256sum *.mp4 *.xml *.jpg > sha256sums.txt

这个命令是逐个生成哈希值的,在计算完成 1.mp4 之前并不会开始计算 2.mp4,不能很好得利用多核性能。

解决办法也很简单,利用“百闻不如一见”的 xargs 即可:

echo *.mp4 *.xml *.jpg | xargs -n 1 -P 8 sha256sum > sha256sums.txt

这里 -n 1 告诉 xargs 每次只传递一个参数给 sha256sum,而 -P 8 告诉 xargs 同时运行最多八个进程。验证的时候,则可以使用如下命令:

xargs -a sha256sums.txt -P 8 -L 1 -I {} sh -c 'echo "{}" | sha256sum -c'