Skip to content
MacClearings

Duplicates: find identical files and keep one of each

Duplicates compares the files MacClearings scanned by size, then by their first and last 64 KB, then by a full SHA-256 hash. You choose which copy to keep, and at least one copy of every file always stays.

Get it at launch

$12.50 launch price for the first 25 buyers, then $25.

macOS 15+ · Apple silicon and Intel

MacClearings Duplicates: 2,425 groups of identical files holding 17.3 GB of extra copies, with the newest copy in each group marked Keep and build output tagged.
Byte for byte, in three steps
Same size first, then the same first and last 64 KB, then the same SHA-256 hash of the whole file. Only files with identical contents end up in a group.
One copy always stays
You can't select every copy in a group, and if every copy reaches the Cleanup tray some other way, MacClearings unstages one before anything moves.
Keep newest, oldest or a folder
Pick one rule for every group at once, or tick and untick copies by hand. The copy being kept is marked Keep.
Clones and hard links left out
APFS clones and hard links already share their storage, so moving one would free nothing. They're never reported as duplicates.
Build output tagged
Copies inside build, .build, DerivedData, .next and .gradle folders are tagged Build output, because building the project again recreates them.

How it compares files

Duplicates works from your latest scan, so start by scanning your home folder or any folder. Click Find Duplicates and MacClearings compares files in three passes:

  1. Files of the same size are grouped. Everything else is set aside.
  2. Within each group, the first and last 64 KB are compared.
  3. Files that still match are hashed with SHA-256, the whole file, so only identical contents remain.

Comparing only reads. By default it looks at files of 1 MB or more; Settings → Cleanup can lower that to 100 KB or raise it to 100 MB. Apps, libraries and system files are never included: Duplicates skips app data in Library, the insides of apps and packages like a Photos library, symbolic links, and cloud files that haven't been downloaded.

In the screenshot, Duplicates found 2,425 groups holding 17.3 GB of extra copies if one of each is kept. The first group is a 28.8 MB file with 16 copies across different project folders.

Choosing what to keep

The menu at the top sets the rule for every group at once:

  • Keep Newest keeps the most recently modified copy and selects the rest.
  • Keep Oldest does the opposite.
  • Keep Copies in Folder… asks for a folder and keeps the copy inside it. Groups with no copy in that folder fall back to keeping the newest.

Each group lists every copy with its path and modification date. The copy being kept is marked Keep. Tick or untick any copy to change it, and use the eye button to open Quick Look. If you try to select the last copy in a group, MacClearings stops you: "One copy always stays. Select another copy to keep first."

Copies inside build, .build, DerivedData, .next and .gradle folders are tagged Build output. In the screenshot, two copies of a 393 MB Flutter library sit in the build folders of two projects. Building either project again makes it again. If you work with build folders often, the project build artifacts rule in Suggestions handles whole folders instead of single files.

On an APFS disk, copying a file can make a clone: a second file that shares the same storage until one of them changes. A hard link is a second name for the same file. In both cases, the extra copy takes almost no space, so moving it to the Trash would free nothing. Duplicates checks for both and leaves them out. Hard links are also counted once in the Map, so its sizes stay honest.

From selection to the Trash

The footer shows what's selected, for example "3,822 copies selected · 17.3 GB", and whether those copies are in the Cleanup tray yet. Add to Cleanup stages them. Review & Clean Up… stages them and opens the review list in one step. Nothing moves until you confirm.

When you choose Move to Trash, MacClearings checks once more that at least one copy of every file stays. If every copy of a file got into the tray some other way, say one from Find and the rest from here, it unstages one and tells you. Each copy is also checked for changes since it was measured, and skipped if it's open in an app.

The copies go to the Trash, and every cleanup can be undone from History while they're still there. The space comes back when you empty the Trash yourself. The safety page explains each check.

Photos and other libraries

The insides of a Photos, Music or iMovie library are left out, and MacClearings never picks those libraries apart. For photos, use the Duplicates album in the Photos app, which merges copies inside the library the way Photos expects.

Guides

Questions about Duplicates

Does macOS have a built-in duplicate file finder?

Not for files in general. Photos has a Duplicates album for photos and videos in your Photos library, and Finder can search by name or sort by size, which helps you spot copies by hand. A duplicate file finder compares the contents, so it also catches copies with different names.

How does MacClearings know two files are identical?

It groups files of the same size, compares their first and last 64 KB, and then compares a SHA-256 hash of each whole file. Files only end up in a group when every byte matches. Comparing only reads the files; nothing is changed.

Can I lose a file by removing duplicates?

MacClearings always keeps at least one copy of every file, and it checks that again right before cleanup. The copies you choose go to the Trash, not away for good, and Undo in History puts them back while they're still in the Trash.

Why aren't duplicates in my Photos library shown?

Duplicates leaves out the insides of packages like a Photos library, along with apps and app data in Library. Picking a library apart would damage it. Use the Duplicates album in Photos for those.

Why are some copies tagged Build output?

They sit inside a folder a build tool makes, like build, .build, DerivedData, .next or .gradle. Building the project again recreates them, so they're usually the copies you don't need to keep.

Find out what's filling your Mac.

MacClearings explains your disk in plain words and moves only what you review to the Trash, with Undo. Paid once, every update included.

Get it at launch

$12.50 launch price for the first 25 buyers, then $25.

macOS 15+ · Apple silicon and Intel