Я хочу проверить целостность папки. В папке так много файлов и папок. Как рассчитать хеш-значение каталога в целом на Ubuntu. md5sum вычисляет только на уровне файла.
Для списка md5sums:
find /path/to/dir/ -type f -exec md5sum {} \;
И для полная md5 контрольная сумма :
find /path/to/dir/ -type f -exec md5sum {} \; | md5sum
Пример произвел:
b2d5d3a5e102aae48eb6ff36c602ac75 -
Уведомление , в папке с огромным размером, это может брать очень долго.
Установите md5deep с
sudo apt-get install md5deep
команда
md5deep -r {direcotory}
, Вы получите хеш на основе всех файлов в каталоге. Можно также использовать md5deep для сравнения хешей файлов в dir
Я создал цифровой отпечаток dir , который может использоваться для решения этого. Это создает цифровой отпечаток/хеш для всех файлов в дереве каталогов и сохраняет его в файле, также говоря Вам, если цифровой отпечаток изменился.
Это может быть установлено с:
$ brew install nejckorasa/tap/dir-fingerprint
и используемый как:
$ dir-fingerprint <path_to_directory>
с выводом:
Old [8a7b73f9671004edd50500bc7d3f1837d841a5c086011207259eb2d183823adf]
New [8a7b73f9671004edd50500bc7d3f1837d841a5c086011207259eb2d183823adf]
@ <path_to_directory>/.fingerprint
Diff false
и .fingerprint
файл создал
Для этого я опубликовал пакет Python 3. Быстрое использование:
$ pip install git+https://github.com/sorgloomer/pyfstools.git@main
...
$ python -m pyfstools hash .
dir 0348bd69ad78babf85960500f5482cfc6f52d7215c5b094c20bed33a17628033
Работает в Linux, Windows, работает с хранилищем S3 или GCS. Подробнее см. pyfstools .