Emptying the Trash freed nothing at all

You delete 40 GB, empty the Trash, and the free space figure barely moves. Something still has a claim on those blocks. On a Mac there are four things it can be, each is visible with one command, and in most cases the space comes back without you deleting anything else.

That last point matters more than any command here. The usual reaction to “it didn’t work” is to delete more, and that’s how a routine clean-up ends with a folder you wanted gone.

Diagram: a deleted 40 GB file in the centre, with four things that can still hold its space around it: a local snapshot, a process with the file open, the Finder counting purgeable space, and a Trash on another volume or account, each with the command that reveals it
Four different things can keep a deleted file’s space allocated. Each one shows up with its own command.

A snapshot still points at the blocks

This is the common one. When Time Machine is set up, macOS takes an APFS snapshot of the internal volume every hour, and a snapshot keeps every block that existed when it was taken. Delete a file that was there at that moment and its blocks stay allocated until the snapshot expires, up to 24 hours later.

tmutil listlocalsnapshots /

A non-empty list is almost certainly your answer. Thinning returns the space at once:

tmutil thinlocalsnapshots / 21474836480 4

Before you thin, read how local snapshots work and how to thin them safely, which covers the one you shouldn’t delete. What an APFS snapshot actually is explains why the blocks are held. macOS also takes one-off snapshots around system updates, so a Mac without Time Machine can occasionally show one too.

If you can wait a day, you don’t need to do anything at all.

An app still has the file open

Deleting a file removes its name from the directory. The blocks are released when the last process holding the file open lets go. An app with a 20 GB log or database open keeps every byte allocated long after the file has vanished from the Finder.

On macOS, lsof lists these as open files with a link count of zero:

sudo lsof +L1

Quit the app it names, or restart. Linux has the same trap, described in diagnosing a full root file system, and it’s much of the reason a restart so often “fixes” a full disk.

The Finder is counting purgeable space

The Finder’s “available” figure is free space plus purgeable space. df reports only what’s actually free:

df -H /System/Volumes/Data

So the Finder’s number can sit still while real free space has gone up, or the other way round. A large gap between the two means purgeable space, and purgeable space and how to force macOS to release it has the remedies. The reliable one is to create real pressure with a large temporary file.

It went into a different Trash

Emptying the Trash from the Dock empties your Trash on the startup disk. There are others:

  • .Trashes on each external drive, which holds files deleted from that drive. Empty the Trash with the drive connected.
  • A network volume’s trash, on some servers.
  • Other user accounts' Trash, on a shared Mac.
  • iCloud Drive’s Recently Deleted, which keeps files for 30 days. That’s about your iCloud storage, not your disk.
sudo du -sh /Volumes/*/.Trashes ~/.Trash 2>/dev/null

Photos is the other one people miss. Its Recently Deleted album lives inside the library and keeps deleted photos for 30 days, so removing pictures frees nothing until you empty that album. It catches people out when trimming a large Photos library.

Using Delete Immediately (Option-Command-Delete) instead of the Trash doesn’t change any of this. It skips the Trash folder, but a snapshot holds the blocks just the same.

Which to check first

The order above is the order I’d check: snapshots, then lsof +L1, then the df versus Finder gap, then the other Trashes. If none of them explains it, restart: that closes every open file, and it gives macOS a quiet moment to settle its purgeable accounting.

Between df, tmutil listlocalsnapshots and lsof, you can see every case above. Find out which one you’re in before you touch anything else. The space is usually on its way back already.

Keep reading