A command line program (and python library) for hashing directories. Can also do hash-based comparisons between directories (like diff -qr).
Project description
Hash Directory
A command line program (and python library) for hashing directories. Can also do hash-based comparisons between directories (like diff -qr).
Command line usage
hash-directory some/path
This will return the sha-256 hash of some/path. For an explanation of how this is calculated go
to hash_directory.
Hash overviews
hash-directory some/path -o
This generates a hash overview of this directory (or file). This is simply file path and hash, one per line, one line for each file within the directory tree.
This looks something like this:
. blablablathsiisahash
./foo blablablathsiisahash
./foo/bar.txt blablablathsiisahash
This can be used when comparing directories by storing the output to a file. Example code for Linux:
hash-directory some/path -o > some.hash
Comparing directories
hash-directory some/path -c another/path
This will compare the directories by first computing the hashes and then iterating of the directories to show the differences.
Now if you don't want to recalculate the hashes whenever comparing, then you can pass the output of overviews as a file, like this:
hash-directory some.hash -c another.hash
# or
hash-directory some.hash -c another/path
As Python library
Install it using pip install hash-directory.
And then import using import hash_directory
Basic usage
import hash_directory
hash_directory.hash_directory("some/path")
This will return the sha-256 hash of some/path. For an explanation of how this is calculated go
to hash_directory.
hash_directory
Parameters:
- path: The path to calculate the hash of
- hash_function (default=hashlib.sha256): A hash function from hashlib
For files (yes, this program of course also works on files) this is equivalent to
hashlib.file_digest("some/path", "sha256").hexdigest().
For directories on the other hand, we first take all files inside this directory and sort them by file name. Then for each file we update our running hash with the file name (encoded in utf-8) and then the file hash.
Other functions and classes
For now just a simple list:
- compare_directories (function)
- DirectoryHasher (class)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hash_directory-2026.2.1.tar.gz.
File metadata
- Download URL: hash_directory-2026.2.1.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da5ff0b83cc47c3981d530ded23d96564cca0e9649d6e84a586552599f87e924
|
|
| MD5 |
4ff1d4833847b716b2f4e8a581a4ff78
|
|
| BLAKE2b-256 |
4d2a0a6fc4464088b7747953021d0f3d4d824ee176ae37b0c0890124c35a2ea4
|
File details
Details for the file hash_directory-2026.2.1-py3-none-any.whl.
File metadata
- Download URL: hash_directory-2026.2.1-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16b0d5a552d8ed38332fb60261051ac8cf0d3108c50d5be3b42651b29fda0e06
|
|
| MD5 |
e407b369d783464828006f82166c63bb
|
|
| BLAKE2b-256 |
8bcd95aba2677b3a9d0d6f1d0eb4fc01a86a6b77a9b9b810da0c0cf474572ca0
|