Fast file deduplication and disk space analyzer for Windows, Linux, and macOS.
DupeFinder scans directories to identify duplicate files using cryptographic hashes. It supports multiple hash algorithms, configurable file filters, and various actions including reporting, deleting, hardlinking, or moving duplicate files.
sudo apt update
sudo apt install perl cpanminus build-essentialsudo dnf install perl perl-App-cpanminus gcc makebrew install perl cpanminusDownload and install Strawberry Perl which includes cpanm.
git clone https://github.com/muhammad-fiaz/DupeFinder.git
cd DupeFinder
cpanm --installdeps .
chmod +x bin/dupefinderAdd to PATH (optional):
export PATH="$PWD/bin:$PATH"./bin/dupefinder /path/to/directory./bin/dupefinder /home/user/photos /home/user/downloads./bin/dupefinder -f json -o report.json /data
./bin/dupefinder -f yaml -o report.yaml /data
./bin/dupefinder -f csv -o report.csv /data./bin/dupefinder -m 1024 -M 10485760 /data./bin/dupefinder -e jpg,png,gif /media/photos# Dry run (default)
./bin/dupefinder -A delete -k first /tmp/downloads
# Execute
./bin/dupefinder -A delete -N -k first /tmp/downloads./bin/dupefinder -A hardlink -N /data/backups./bin/dupefinder -A move -d /tmp/dupes -N /data./bin/dupefinder -c config/dupefinder.yaml /data| Option | Description |
|---|---|
-c, --config FILE |
Config file (YAML) |
-o, --output FILE |
Output file for report |
-f, --format FMT |
Output format: text, json, yaml, csv |
-v, --verbose |
Verbose output |
-q, --quiet |
Suppress progress messages |
-C, --no-color |
Disable colored output |
-n, --dry-run |
Dry run mode (default) |
-N, --no-dry-run |
Execute file operations |
-m, --min-size N |
Minimum file size in bytes |
-M, --max-size N |
Maximum file size in bytes |
-e, --extensions |
Comma-separated extensions |
-a, --algorithm |
Hash: MD5, SHA1, SHA256, SHA512 |
-A, --action |
Action: report, delete, hardlink, move |
-k, --keep |
Keep first or last file |
-d, --move-dir DIR |
Destination for moved duplicates |
prove -l t/Apache License 2.0 - see LICENSE