Recursive file/directory change-detection
Filed under: Command line tools, One-liners
Version 2
Another, much faster method would be to use ls -lR to browse over the filesystem. On a newly installed Debian virtual machine (on Xen) hashing the entire filesystem (the root directory) took approximately 1.7 seconds. So, here it is:
ls -lR "$D" | sha1sum | sed 's/[ -]//g'
This method is sensitive to file name, size and modification size; usually that would be enough but if you need more control use…
Version 1
Detect when the contents of a file or directory ($D) changes:
find "$D" | while read f; do stat -t "$f"; done | sha1sum | sed 's/[ -]//g'
This yields a hash of the current state of the file or directory which is extremely sensitive to even the most subtle changes (even a simple touch to any file/directory somewhere inside "$D" changes the generated hash).
Posted on November 6th, 2009 by Valeriu Paloş
4 Comments »