The Mac Desk Notes on macOS, the small stuff included
Guides

What actually eats your disk space, measured

Four commands that show where the gigabytes went, before you install anything that promises to find them.

· The Mac Desk · 2 min read

A Mac that reports 12 gigabytes free but refuses to install an update is usually not full of mystery. It is full of a few large, identifiable things. Measuring them takes three minutes and no downloads.

Start with the summary

df -h shows each mounted volume and how much is used. On modern Macs you will see the data volume, since the system volume is sealed and read-only. ⌘I on the startup disk in Finder gives the same numbers with categories attached, which are approximate but directionally correct.

Find the big folders

This walks your home directory one level deep and prints the largest entries:

du -xh -d1 ~ 2>/dev/null | sort -h | tail -20

-x keeps it on one volume, -d1 limits the depth, 2>/dev/null hides the permission errors that would otherwise fill the screen. To go inside the worst offender, run the same command against that folder with -d2.

For system-wide totals, point it at the data volume:

sudo du -xh -d1 /System/Volumes/Data 2>/dev/null | sort -h | tail -20

The usual suspects

  • ~/Library/Caches holds regenerable data. Deleting it is safe; apps rebuild what they need. Signing out of some apps afterwards is normal.
  • ~/Library/Developer/Xcode/DerivedData can reach tens of gigabytes on a machine that builds iOS apps. Xcode recreates it on the next build.
  • ~/Library/Application Support/MobileSync/Backup keeps iPhone backups. Old device backups are the single most common waste on a work Mac. Finder > General > Manage Backups removes them.
  • ~/Library/Containers/com.docker.docker grows with the disk image Docker allocates. It does not shrink on its own after you delete containers.
  • ~/Downloads and ~/Desktop are self-explanatory and still worth checking, because nobody believes the number until they see it.

Time Machine snapshots

Local snapshots let Time Machine work between backups, and they hold real space until the system needs it. List them:

tmutil listlocalsnapshots /

Each line ends with a timestamp. Remove a specific one:

sudo tmutil deletelocalsnapshots 2026-11-01-120000

The system prunes these automatically under pressure, so deleting them is optional. On a small SSD they are often the reason “free space” jumped by 40 gigabytes overnight.

Check the space purgeable, not just the space free

Finder reports purgeable space separately. That is space macOS can reclaim on demand: snapshots, caches, some iCloud data. A disk with 5 gigabytes free and 60 gigabytes purgeable is not in trouble. A disk with 5 gigabytes free and none purgeable is, and the lists above will show why.

What to do with the numbers

Delete in this order: old device backups, Xcode derived data, caches you can name, then installed apps you have not opened in a year. Empty the Trash at the end, because deleted files sit there and count.

A cleaner app does the same thing with a progress bar and a licence fee. If the numbers above already told you where the space went, you do not need one.

Keep reading