Find duplicate files on a Mac

macOS has no built-in duplicate file finder (Photos handles pictures only). The practical route: use a Finder Smart Folder sorted by size to spot obvious repeats, or run dupeGuru, which is free, open-source, and scans by file content so renamed copies are still caught. Review matches before deleting; send to Trash, don't hard-delete.

Method 1: Finder triage (no install)

  1. Finder → File → New Smart Folder → set criteria (e.g. Kind is Movie, or Size > 100 MB).
  2. Sort by size: identical sizes next to each other are duplicate candidates.
  3. Quick Look (space bar) to confirm, then Trash the copies.

Good for hunting the big wins (videos, disk images, downloads folder chaos); tedious for thousands of small files.

Method 2: dupeGuru (free, open-source)

It scans folders by content hash, so a renamed copy is still a match. There is a fuzzy mode for near-identical names, and it marks all-but-one copy per group automatically. Review the list, then send to Trash. Commercial alternatives (Gemini 2 and similar) add polish but the free tool does the job.

Safety rules

Never scan system folders; keep one copy of anything you might reinstall; use Trash (not permanent delete) on the first pass; and for photos specifically, use the built-in Photos Duplicates feature instead, or start from the duplicate photos hub for the method that fits your device. Cleaning data files like CSVs? That's what our in-browser tools are for.

FAQ

Frequently asked questions

Does macOS have a built-in duplicate file finder?

Not a general one. Photos (Ventura+) has a Duplicates album for pictures, but for arbitrary files you need Finder tricks or a dedicated tool.

What's a good free option?

dupeGuru is free and open-source, scans by content (not just name), and supports fuzzy filename matching. It's the standard free recommendation.

Is it safe to auto-delete everything a tool finds?

Review before deleting: keep one copy of installers you still need, watch for files inside app bundles, and prefer sending to Trash over permanent deletion the first time.

Last updated