Find duplicate files by what's actually in them, not what they're called — and safely clean them up.
Download for macOS Windows Linux
Free · single binary, no install · Apple Silicon & Intel, Windows, Linux x64
Just report, touch nothing:
fastdedupe ~/Downloads
See what would be deleted, without deleting it:
fastdedupe --delete --dry-run ~/Downloads
Delete copies, asking once for confirmation:
fastdedupe --delete ~/Downloads
Replace copies with hardlinks instead of deleting them — same content, one copy on disk, every path still works:
fastdedupe --link --yes ~/Downloads
When several files share content, fastdedupe keeps the one whose folder holds the most other files — a stray copy sitting alone in a random folder is far more likely to be the extra one than a file sitting among nine siblings. Ties are broken by the older file. Two paths that are already hardlinks to the same file are treated as one file, not a copy of each other.
| macOS | Apple Silicon or Intel, 11 or later |
|---|---|
| Windows | 64-bit, 10 or later |
| Linux | x86-64, static binary, no runtime needed |
The macOS and Windows binaries aren't code-signed. macOS will warn about an unidentified developer the first time — right-click the file, choose Open, and confirm once. Windows SmartScreen behaves the same way — click More info → Run anyway.
fastdedupe never reads a network. It only opens the files under the folder you point it at, and only deletes or relinks files when you pass --delete or --link. Nothing is collected, logged, or sent anywhere.