我正在尝试对我在目录及其子目录中找到的所有.jar文件执行校验和。然后将带有校验和值的文件名打印到文件中。
这就是我所拥有的。
md5sum | find -name *.jar >result.txt
我正在尝试将两个命令连接起来,我知道这些命令是单独工作的。
任何帮助表示感谢。
答案 0 :(得分:11)
你可以使用类似的东西在每个文件上执行命令:
find . -name "*.jar" -exec md5sum {} \; >result
答案 1 :(得分:1)
这也可以递归地散列当前目录或子目录中的所有文件(感谢我的系统管理员!):
md5sum $(find . -name '*.jar') > result.txt
以上将在文件名前添加“./”(不包括路径)。
使用mux的-exec
建议将“*”添加到文件名(再次,没有路径)。
列出的文件顺序在两者之间也有所不同,但我没有资格确切地说明原因,因为我是一个完整的noob来编写脚本。
编辑:忘记上面有关前置和完整路径的内容,这是基于我在HPC上远程运行的经验。我刚刚使用cygwin在我的本地Windows机器上运行了我的系统管理员的建议并得到了完整的路径,前面加上“*。/”。我需要使用其他一些功能来转储不一致的路径和前置,以使比较更容易。简而言之,YMMV。
答案 2 :(得分:0)
您还可以将结果通过管道传递到xargs
:
find . -name "*.jar" | xargs md5sum > result.txt