In the terminal it's easy to find the md5sum of a single file, but how about for an entire directory? And would the same apply to sha256sum?
Asked
Active
Viewed 1.4k times
1 Answers
5
This little script will make sha512sums of a folder and all its subfolders and save it to a file called sha512checksums:
#!/bin/bash
rm -f sha512checksums
find -type f ! -iname "sha512checksums" -exec sha512sum "{}" + > sha512checksums
And this following scrip lets you check the sums based on the before created file:
#!/bin/bash
rm -f sha512errors
sha512sum -c sha512checksums 2> sha512errors 1>/dev/null
if [ -s sha512errors ]
then
echo The following errors where found while checking:
more sha512errors
rm -f sha512errors
else
echo All files are ok.
rm -f sha512errors
fi
Same will work as well for every other sum making algorithm, you only would have to alter the scripts.
Videonauth
- 33,045
- 16
- 104
- 120
-
So when you said "every other sum making algorithm" you mean sha256sum also and not just sha512sum like you used? – J. Doe Jun 03 '16 at 08:33
-
1`md5sum`, `sha1sum` till `sha512sum`, just alter the code accordingly. – Videonauth Jun 03 '16 at 08:35
-
Ahh. So is this the same method BitTorrent clients use when checking the integrity of a downloaded folder with contents inside? – J. Doe Jun 03 '16 at 08:37
-
Kinda, just a bash script to do the checking locally. – Videonauth Jun 03 '16 at 08:38
-
Does this actually output the filenames into the sha512errors file? My system only seems to output the number of failed files in STDOUT. – Arronical Jun 10 '16 at 11:16
-
the file only will contain errors, if there are no errors the file will be empty, and anyways removed at the end. – Videonauth Jun 10 '16 at 11:18
-
If you want output leave the `1>/dev/null` out – Videonauth Jun 10 '16 at 11:24
-
@Videonauth cool! is there a way to make this to do it to compare two folders? Where do you inser the folder path? in {}? – Herman Toothrot Aug 18 '16 at 11:57