我想列出(并保存)目录中所有文件的 Md5 校验和,并将该列表保存在名为的文本文件中md5sum.txt
如果我能
- 将其集成到
tree
命令中(创建文件夹和文件的树结构) - 使其在文件夹和子文件夹上工作(这很重要)
答案1
您可以使用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
)
答案2
您可以执行以下命令:
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