如何解决有没有办法对子文件夹中的所有文件进行md5sum?
我有几种导出电报数据的方法,我想计算所有文件的md5和sha256哈希值,但只计算根目录中的文件
$ md5sum `ls` > hash.md5
md5sum: chats: Is a directory
md5sum: css: Is a directory
md5sum: images: Is a directory
md5sum: js: Is a directory
md5sum: lists: Is a directory
md5sum: profile_pictures: Is a directory
这在输出文件中
7e315ce28aa2f6474e69a7b7da2b5886 export_results.html
66281ec07a2c942f50938f93b47ad404 hash.md5
da5e2fde21c3e7bbbdb08a4686c3d936 ID.txt
有没有办法得到这样的东西?
5750125fe13943f6b265505b25828400 js/script.js
对不起,我的英语
解决方法
使用bash:
shopt -s globstar
md5sum ** >/tmp/hash.md5
忽略此类错误:md5sum: foobar: Is a directory
来自man bash
:
,
globstar
:如果设置,则在路径名扩展上下文中使用的模式**将匹配所有文件以及零个或多个目录和子目录。如果模式后跟/,则仅目录和子目录匹配。
hashdeep
是一个有帮助的工具,但默认情况下可能未安装。
hashdeep
直接执行此操作,并具有更多优势,例如二进制文件也可用于Windows。
将使用hashdeep
通过以下命令回答您的问题:
hashdeep -c md5,sha256 -r -o f -l . > hash.md5
这将使用一个命令来计算所有子目录中所有文件的md5和sha256。
由于文件的缓存效果,一起创建md5和sha256可能会更快。此外,该命令还具有使用多个线程的选项,可以使用多核CPU和快速磁盘来加快任务执行速度。
,或者,您可以将find
与-exec
选项一起使用:
find topdir -type f -exec md5sum {} + > MD5SUMS
将topdir
替换为实际的目录名称,如果要在当前目录(及其子目录,如果有)上工作,则将其删除。这将仅计算常规文件的校验和(因此,不会出现“ md5sum:某事:是目录”错误),并且不会因“ 参数列表太长而受苦” >”问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。