10

I want to verify integrity of folder. The folder has so many files and folders. How to calculate hash value of directory as a whole on Ubuntu. md5sum calculate at only file level.

4 Answers4

7

For a list of md5sums:

find /path/to/dir/ -type f -exec md5sum {} \;

And for an overall md5 checksum:

find /path/to/dir/ -type f -exec md5sum {} \; | md5sum

Example output:

b2d5d3a5e102aae48eb6ff36c602ac75  -

Notice, at a folder with huge size, it can take very long.

chaos
  • 28,186
3

Install md5deep with

sudo apt-get install md5deep

The command

md5deep -r {direcotory}

you will get a hash based on all the files in the directory. You can also use md5deep to compare hashes of the files in the dir.

Rinzwind
  • 309,379
1

I created dir-fingerprint that can be used to solve that. It creates fingerprint/hash for all the files in directory tree and saves it in a file, also telling you if the fingerprint has changed.

It can be installed with:

$ brew install nejckorasa/tap/dir-fingerprint

and used as:

$ dir-fingerprint <path_to_directory>

with output:

Old     [8a7b73f9671004edd50500bc7d3f1837d841a5c086011207259eb2d183823adf]
New     [8a7b73f9671004edd50500bc7d3f1837d841a5c086011207259eb2d183823adf]
@       <path_to_directory>/.fingerprint
Diff    false

and .fingerprint file created

0

I published a Python 3 package for that. Quick usage:

$ pip install git+https://github.com/sorgloomer/pyfstools.git@main
...
$ python -m pyfstools hash .
dir 0348bd69ad78babf85960500f5482cfc6f52d7215c5b094c20bed33a17628033    

Works on Linux, Windows, works with S3 or GCS storage. See more at pyfstools .