Problem Specification:
Given a directory, I want to iterate through the directory and its non-hidden sub-directories,
and add a whirlpool hash into the non-hidden
file’s names.
If the script is re-run it would would replace an old hash with a new one.
<filename>.<extension>==><filename>.<a-whirlpool-hash>.<extension>
<filename>.<old-hash>.<extension>==><filename>.<new-hash>.<extension>
Question:
a) How would you do this?
b) Out of the all methods available to you, what makes your method most suitable?
Verdict:
Thanks all, I have chosen SeigeX’s answer for it’s speed and portability.
It is emprically quicker than the other bash variants,
and it worked without alteration on my Mac OS X machine.
Updated to fix:
1. File names with ‘[‘ or ‘]’ in their name (really, any character now. See comment)
2. Handling of md5sum when hashing a file with a backslash or newline in its name
3. Functionized hash-checking algo for modularity
4. Refactored hash-checking logic to remove double-negatives
This code has the following benefits over other entries thus far
Test Tree
Result