Print md5sum of results of a find command in Linux
Asked Answered
L

3

8

I am tryng to do checksum on all .jar files I can find in directory and its sub directories. Then print the filename with the checksum value to a file.

this is what I have.

md5sum | find -name *.jar >result.txt

I am trying to join two commands together that I know work individually.

Any help appreciated.

Liliuokalani answered 8/2, 2013 at 15:50 Comment(1)
You might also find hashdeep useful: md5deep.sourceforge.netHymnal
P
14

You could use something like this to execute a command on each file:

find . -name "*.jar" -exec md5sum {} \; >result
Plea answered 8/2, 2013 at 15:55 Comment(2)
Thank you for this. It worked perfect. Any addition, any way to only write the file name in the file and not the full folder path.Liliuokalani
@JamesMclaren yes if you add -printf "%f\n" it will print just the filename but I don't think it will work as md5sum needs the full path, you could remove the path after executing the command with sed or awkPlea
S
3

This will also work to recursively hash all files in the current directory or sub-directories (thanks to my sysadmin!):

md5sum $(find . -name '*.jar') > result.txt

The above will prepend "./" to the filename (without including the path).

Using the -exec suggestion from mux prepends "*" to the filename (again, without the path).

The listed file order also differed between the two, but I am unqualified to say exactly why, since I'm a complete noob to bash scripting.

Edit: Forget the above regarding the prepend and full path, which was based on my experience running remotely on an HPC. I just ran my sysadmin's suggestion on my local Windows box using cygwin and got the full path, with "*./" prepended. I'll need to use some other fanciness to dump the inconsistent path and prepending, to make the comparison easier. In short, YMMV.

Shoemaker answered 9/5, 2014 at 16:8 Comment(0)
W
2

You can also pipe the results to xargs:

find . -name "*.jar" | xargs md5sum > result.txt
Wien answered 29/3, 2019 at 17:37 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.