What is filling up my hard drive?
Finding the folder that grew, knowing what kind of thing grew, and knowing when the drive actually runs out are three different questions.
Short answer
Map the tree by size, biggest folder first, and stop descending when a branch is small. That finds the room in a few minutes. What you do about it depends on what kind of thing turns out to be sitting there.
Start with the shape of the drive, not the files
A drive filling up is almost never ten thousand files getting slightly bigger. It is two or three places getting enormous, and everything else staying where it was.
So the first move is a map: total size per folder, sorted biggest first, one level at a time. Open the biggest one, look again, repeat. Three or four rounds of that lands on the actual culprit on nearly every machine — a virtual machine image, an old Time Machine sparsebundle, a node_modules from a project finished two years ago, an iOS backup nobody knew existed.
What you should not do is sort every file on the disk by size. It buries a 40 GB folder made of 200,000 small files under a single 4 GB video, and the folder is the thing you can actually act on.
The built-in tools, and where they stop
Windows has Settings → System → Storage, which breaks the drive into categories. macOS has → About This Mac → Storage → Manage. Both are worth thirty seconds of your time and both have the same limitation: they show you categories chosen by the operating system, and the thing eating your disk is very often in the bucket labelled “Other” or “System Data”.
From a terminal, du gets you the real answer on macOS:
du -h -d 1 ~ | sort -h | tail -20
Run it, cd into whatever is biggest, run it again. That loop is the whole technique, and everything below is a faster or clearer version of it.
Where the room actually goes
Across a lot of machines, the same handful of things account for most of it.
- Downloads. Installers you ran once. On a machine a few years old this is routinely 20–60 GB.
- Old system snapshots. Windows restore points, macOS local Time Machine snapshots. Both are designed to release space under pressure, and both fail to when the disk fills faster than they expect.
- Developer caches.
node_modules, Docker images,~/Library/Caches, package manager caches, build output. Each one individually reasonable, collectively enormous. - Photo and video libraries with a second copy. An import that ran twice, or a library that was copied instead of moved during a migration.
- Virtual machines and disk images. These allocate their full size whether or not they are using it.
Knowing which category the room went into matters more than knowing which folder, because the category tells you whether it is safe to clear. A 30 GB cache directory can go. A 30 GB folder of .psd files cannot.
When does it actually run out?
This is the question nobody asks until it is too late, and it is the easiest one to answer properly: measure the same tree on a schedule, fit a line through the measurements, and read off the date.
It only works with real history. A single reading tells you nothing about the trend, two tell you almost nothing, and a fortnight of daily readings tells you whether the log directory that has grown 4 GB this month is a problem in March or in 2031.
The programs for this
- DrivePulse is the map. Point it at a folder and it shows where the room went, biggest first, grouped by however many levels deep you ask for. It only reads.
- SpaceMedic answers the category question. It sorts everything it finds into junk types — temp files, logs, cache directories, stale installers, old downloads, large media — so you can see what kind of thing is taking the room. It is diagnosis only: it never deletes, moves or quarantines anything.
- DiskWatch is the forecast. It appends one measurement per run to a history file, then fits a least-squares regression across the history and gives you the date the tree hits the capacity you named.
- StorageLens does the same job across several drives or shares at once, sorted worst-first, with a CSV if you need to hand it to somebody.
Free while we are in preview, one file each, Windows and Mac.
Two things worth checking before you buy a bigger drive
Empty the recycle bin and the trash. Obvious, routinely worth tens of gigabytes, and on macOS remember that Photos and Mail keep their own separate trash that the main one does not touch.
Look for the same library twice. The single most common surprise on a full drive is a photo or music collection that exists in two places because a migration copied rather than moved. A duplicate finder settles that in one pass, and the answer is usually worth more room than everything else on this page put together.