Sumeet Deshmukh Asked: 2017-04-23 22:34:44 +0800 CST2017-04-23 22:34:44 +0800 CST 2017-04-23 22:34:44 +0800 CST 如何递归列出目录及其子目录中所有文件的 Md5sum?[复制] 772 我想列出(并保存)目录中所有文件的 Md5 校验和,并将该列表保存在一个名为的文本文件中md5sum.txt 如果可以的话也很好 将其集成到tree命令中(创建文件夹和文件的树形结构) 使其适用于文件夹和子文件夹(这很重要) command-line 2 个回答 Voted Best Answer Zanna 2017-04-23T22:40:10+08:002017-04-23T22:40:10+08:00 您可以使用find(在目录中) find -type f -exec md5sum '{}' \; > md5sum.txt 如果要排除md5sum.txt文件本身,可以这样做: find -type f \( -not -name "md5sum.txt" \) -exec md5sum '{}' \; > md5sum.txt 您还可以使用循环:打开递归通配符 shopt -s globstar 然后,在目录中: for i in **; do [[ -f "$i" ]] && md5sum "$i" >> md5sum.txt; done 您也可以从该文件中排除文件本身: for i in **; do [[ -f "$i" ]] && [[ md5sum.txt != "$i" ]] && md5sum "$i" >> md5sum.txt done 这些都不会产生类似tree的结构。但他们确实打印了从起始目录到文件的相对路径。如果您想要绝对路径,请使用find /path/to/directory ... 之后您可能想关闭 globstar ( shopt -u globstar) Yaron 2017-04-23T22:41:07+08:002017-04-23T22:41:07+08:00 您可以执行以下命令: md5sum /path/to/directory/* > /path_to_result/md5sum.txt 结果文件中的输出将是这样的: 46684e3891d990acde2e723ee3d4e94a /var/log/alternatives.log 39cf1ebf93452ed5f8b240b35ae73f9f /var/log/alternatives.log.1 aa6c09c411d1d0870bca5f401d589332 /var/log/alternatives.log.2.gz
您可以使用
find
(在目录中)如果要排除
md5sum.txt
文件本身,可以这样做:您还可以使用循环:打开递归通配符
然后,在目录中:
您也可以从该文件中排除文件本身:
这些都不会产生类似
tree
的结构。但他们确实打印了从起始目录到文件的相对路径。如果您想要绝对路径,请使用find /path/to/directory ...
之后您可能想关闭 globstar (
shopt -u globstar
)您可以执行以下命令:
结果文件中的输出将是这样的: