在linux中,如何一次计算多个文件的md5,并将输出放在一个文本文件中?

in linux, how to compute the md5 of several files at once, and put the output in a text file?

我的路径中有很多文件看起来像 file_01.gzfile_02.gz

我想为它们中的每一个计算 md5 checksums,并将输出存储在一个文本文件中,类似

filename  md5
file01    fjiroeghreio

在 linux 上可以吗?

非常感谢!

Linux 已经有一个名为 md5sum 的工具,所以您需要做的就是为您想要的每个文件调用它。在下面的方法中,您将获得 md5sum 工具的默认格式 "SUM NAME",找到的每个文件每行一个。通过使用双重重定向 (>>),每次调用都会附加到输出文件的底部,sums.txt

#!/bin/bash
for f in *.gz; do
    md5sum "$f" >> sums.txt
done

以上仅供说明,您可能应该检查输出文件是否预先存在,处理错误等

有很多方法可以做到这一点,所以这一切都取决于进一步的要求。格式必须是您声明的格式,它必须递归目录等吗?

md5sum file*.gz > output.txt

输出文件是 space 分隔的,没有 header

您可以使用 shell filename expansion:

md5sum *.gz > file