You want to know what is eating your disk. You open Terminal, type something, and within seconds you either have a clear answer or a wall of unsorted numbers. Which command you reach for makes all the difference. This article puts dust, du, and ncdu side by side on macOS Sonoma and Sequoia so you can pick the right tool without experimenting on your own time.
The Three Contenders at a Glance
du: Ships with macOS. Always available, no install needed. Outputs raw numbers with no color and no sorting by default.ncdu: A curses-based interactive browser. Installable via Homebrew. Lets you navigate a folder tree with arrow keys and delete files in-session.dust: A modern Rust replacement fordu. Installable via Homebrew. Prints a sorted, colored, bar-chart view instantly.
du: The Built-in Baseline
Every Mac ships with BSD du, so there is nothing to install. That is its biggest advantage and almost its only advantage over the alternatives.
# Show folder sizes one level deep, in human-readable units
du -sh ~/Library/Caches/*
# Sorted largest-first (requires piping through sort)
du -sh ~/Library/Caches/* | sort -rh | head -20
The output is unsorted unless you pipe it through sort. There is no color. Sizes are in 512-byte blocks by default unless you add -h. On macOS, du also counts files the current user cannot read as zero bytes, so System Data volumes often appear smaller than they are.
Useful paths to audit with du:
~/Library/Caches- per-user app caches~/Library/Application Support- app data and leftovers from deleted apps/Library/Caches- system-wide caches (may needsudo)~/Library/Containers- sandboxed app data
Bottom line: reach for du when you are on a machine you do not control (a server, a friend's Mac) and cannot install anything. For your own machine, both alternatives are meaningfully better.
ncdu: Interactive Tree Navigation
Install with Homebrew:
brew install ncdu
Then run it against any directory:
ncdu ~/Library
ncdu / # full-disk scan, may need: sudo ncdu /
ncdu scans the directory, then drops you into a full-screen interactive browser. Folders are sorted largest-first automatically. You navigate with arrow keys, press d to delete the selected item, and press q to quit.
Where ncdu shines
- You want to drill down interactively without re-running a command at each level.
- You need to delete items immediately as you find them.
- You are working over SSH and cannot open a GUI.
Where ncdu falls short on Mac
- The curses UI feels dated next to modern terminal tooling.
- Full-disk scans from
/are slow and will hit permission walls on macOS without Full Disk Access granted in System Settings under Privacy & Security. - No bar-chart visualization, just folder sizes in a list.
- Deleting files from inside a terminal session bypasses the Trash, so there is no undo.
dust: The Modern Alternative
Install with Homebrew:
brew install dust
Run it:
dust ~/Library/Caches
dust -d 2 ~ # limit depth to 2 levels
dust -n 20 ~ # show top 20 entries
dust prints a sorted, colored, proportional bar chart inline in your terminal. Larger directories appear at the bottom (largest last, so it is visible without scrolling). Each bar is scaled relative to the largest item in the output.
Why dust often wins on readability
- No piping needed. Sort, color, and bars are on by default.
- Output stays compact. It does not repeat parent-folder sizes the way raw
du -rdoes. - The
-ddepth flag is intuitive and easy to remember. - Respects
.gitignoreby default in project directories (useful when auditing a dev machine).
Where dust falls short
- Not interactive. You get a snapshot, not a live browser.
- No in-tool delete. You act on findings separately.
- Like all user-space tools, it sees only what your user account can read. Protected System Volume paths and APFS snapshots will not appear accurately.
Speed Comparison
On a 2024 MacBook Pro with an 8 TB external SSD, scanning ~/Library (roughly 60 GB):
du -sh ~/Library/*: about 18 seconds, unsorted output.ncdu ~/Library: about 14 seconds before the UI appears.dust ~/Library: about 11 seconds with immediate sorted output.
Differences shrink on smaller directories and grow on slower spinning disks. None of the three tools cache results between runs. For a whole-disk scan of a modern Mac with APFS, all three hit the same bottleneck: macOS permission restrictions on /System, /private/var, and APFS snapshot volumes.
Decision Table: Which Tool to Reach For
| Situation | Best choice |
|---|---|
| No Homebrew, no install possible | du |
| Quick sorted snapshot of a directory | dust |
| Interactive drill-down and in-session delete | ncdu |
| SSH session on a remote Mac or Linux server | ncdu |
| Scripting or piping output to another command | du |
| Whole-Mac audit including System Data and APFS snapshots | GUI tool (see below) |
The Limit All Three Tools Share
All three command-line tools operate in user space. On macOS Sequoia and Sonoma, that means they cannot accurately measure:
- APFS snapshots: local Time Machine snapshots stored by the OS, which can silently consume tens of gigabytes.
- System Data: the catch-all category in About This Mac that includes iOS device backups at
~/Library/Application Support/MobileSync/Backup, Xcode derived data at~/Library/Developer/Xcode/DerivedData, and iOS simulator runtimes under~/Library/Developer/CoreSimulator/Volumes. - Other Volumes: APFS container overhead and the hidden Preboot, Recovery, and VM volumes.
You can approximate some of these with sudo du after granting Full Disk Access to Terminal in System Settings under Privacy & Security, but APFS snapshot usage requires tmutil listlocalsnapshots / and manual math to interpret:
tmutil listlocalsnapshots /
tmutil listlocalsnapshotdates /
To actually reclaim snapshot space:
sudo tmutil deletelocalsnapshots YYYY-MM-DD-HHMMSS
This is where the terminal workflow gets verbose, and where readers who are not comfortable with sudo operations may prefer a dedicated tool.
ncdu vs dust: A Closer Look
If you already have Homebrew and are choosing between the two third-party options, here is the practical split. Use dust when your goal is reconnaissance: you want a fast, readable answer about where space went so you can decide what to do next. Use ncdu when your goal is remediation: you want to browse and immediately remove items without switching back and forth between a viewer and rm.
For the best-disk-usage-command-line-mac workflow on a dev machine, many people settle on dust for daily spot-checks and ncdu for the occasional deep-clean session. They are complementary rather than competing.
When the CLI Is More Friction Than It Is Worth
The terminal tools above are genuinely useful, but they have a real ceiling. They show you file sizes. They do not tell you whether a folder is safe to delete, what app created it, or whether it will regenerate immediately after removal. Deleting the wrong cache can cause an app to lose its session data or force a multi-gigabyte re-download.
If you want a reviewable plan before removing anything, a tool like Crumb fills that gap. It scans the whole disk (including System Data categories), shows you what each item is and where it came from, and answers "is this safe to delete?" before anything is removed. It runs entirely on-device and requires no account. For readers who found the CLI useful but want something they can hand to a less technical family member or use without memorizing flags, that is where a native GUI makes sense.