Md5explorer
A command-line file management toolkit: duplicate detection, directory comparison, MD5 inventories, empty-directory cleanup, and a SQLite index for large collections.
Installation
pip install md5explorer
Or, from a local checkout:
pip install -e .
Quickstart
# Detect duplicates (read-only)
md5explorer scan duplicates ./photos
# Simulate deletion, keeping the newest file of each group
md5explorer scan duplicates ./photos --delete --dry-run --keep newest
# Compare two directories
md5explorer scan compare ./dir1 ./dir2
# Generate an MD5 inventory
md5explorer scan inventory ./photos -o inventory.txt
# Index a large tree into SQLite (multiprocess)
md5explorer db index ./photos
# Compare a new folder against the index
md5explorer db compare ./incoming --delete --dry-run
Run md5explorer --help, md5explorer scan --help, or md5explorer db --help for
the full option list.
Commands
| Group | Subcommand | Purpose |
|---|---|---|
| scan | duplicates |
Detect and optionally delete duplicate files |
| scan | compare |
Compare two directories file by file |
| scan | inventory |
Write an MD5/name/date/path inventory to a text file |
| scan | diff-lists |
Diff two inventory files by MD5 |
| scan | empty-dirs |
Detect and optionally delete empty directories |
| db | index |
Index a directory into the SQLite database |
| db | list |
List entries from the database |
| db | check |
Check if a file is present in the database |
| db | compare |
Compare a directory against the indexed catalog |
Development
pip install -e ".[dev]"
pytest
ruff check src
mypy src
License
MIT - see LICENSE.
Metadata
Release files for md5explorer 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| md5explorer-1.0.0.tar.gz | 768.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| md5explorer-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 796.7 kB
Release files / md5explorer-1.0.0.tar.gz
| Download URL | md5explorer-1.0.0.tar.gz |
|---|---|
| Size | 768.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
57a391e2c892620b5890f29a1532a656c2f0c6cf9e08ac949ffd6d7fc6c83d8b
|
|
BLAKE2b-256 checksum How to use checksums |
8ec0a1c7fee73e4fde194c5a901ba4eaf7e459ffbed194ec7eca816284c4e4d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 26, 2026.
Transparency logRelease files / md5explorer-1.0.0-py3-none-any.whl
| Download URL | md5explorer-1.0.0-py3-none-any.whl |
|---|---|
| Size | 28.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
31239de1ba2c487401ea309ce4b632d77f8c792a70250adc93beccee2e267d8b
|
|
BLAKE2b-256 checksum How to use checksums |
b2c09449b6d93afe5e62ad5adc2eafdedcde98fbcaf8ebdde57ffb5844c4aebc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 26, 2026.
Transparency log