Bash:在许多文件上并行化 md5sum 校验和

标签 bash

比方说,我有一个 64 核服务器,我需要计算 /mnt/data 中所有文件的 md5sum,并将结果存储在文本中文件:

find /mnt/data -type f -exec md5sum {} \; > md5.txt

上述命令的问题是,在任何给定时间只有一个进程运行。我想充分利用我的 64 核的全部功能。理想情况下,我想确保在任何给定时间,有 64 个并行 md5 进程正在运行(但不超过 64 个)。

还有。我需要将所有流程的输出存储到一个文件中。

注意:我不是在寻找一种方法来并行计算一个文件的 md5sum。我正在寻找一种方法来并行计算 64 个不同文件的 64 个 md5sums,只要有任何文件来自 find

最佳答案

使用GNU parallel .您还可以找到更多有关如何实现它的示例 here .

find /mnt/data -type f | parallel -j 64 md5sum > md5.txt

关于Bash:在许多文件上并行化 md5sum 校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16772186/

相关文章:

linux - 每次打开 Ubuntu 终端时 Bash 都没有这样的文件或目录

macos - 在脚本中导出代表结帐时出错

bash - 删除标点符号标准输入。

Bash:测试多个变量的相互相等性?

Bash,标准输出重定向命令,如 scp

linux - shell脚本的意外行为

linux - 无法为我的 .bashrc 实现别名/替换功能

linux - 远程 SUDO ssh 脚本中的 SED

linux - 打印count生成的文件中符合条件的行数

linux - 将文件重命名为数字,从特定数字开始