Terminal & built-in storage tools

dust vs du vs ncdu: Best Disk Usage Tool for Mac in 2026

If you have ever typed du -sh ~/Library/* and stared at a wall of unsorted kilobyte counts, you already know why alternatives exist. dust vs du vs ncdu is the comparison that keeps coming up in Mac developer circles because each tool solves the same problem — finding out where your disk space went — in a meaningfully different way. This post gives you an honest side-by-side so you can reach for the right one without trial and error.

The contenders

du — the built-in

du ships with every macOS install (currently the BSD variant from Apple). It requires no installation, runs immediately, and is available in any script or CI environment without setup. The trade-off is that its output is unsorted, uses 512-byte blocks by default unless you add -h, and produces no color or tree structure. A typical invocation to find large first-level directories looks like this:

du -d 1 -h ~/Library | sort -rh | head -20

That pipeline — du piped through sort -rh — is something you will type or alias constantly, because du itself does not sort. On a MacBook Pro with a large Library folder the command may take 10–30 seconds on a cold run because it performs a single-threaded walk. The output has no color; entries are just sizes and paths.

Useful flags on macOS:

  • -h — human-readable sizes (KB, MB, GB)
  • -d N — limit depth to N levels
  • -s — summarize a single path (equivalent to -d 0)
  • -x — stay on one filesystem (skips mounted volumes)
  • -c — print a grand total at the end

When it is the right choice: scripts, SSH sessions on remote servers, one-off quick checks where you already know roughly where to look.

dust — du rewritten in Rust

dust (version 1.2.4 as of early 2026) is a Rust-based reimagining of du by Andy Boot. Install it with Homebrew:

brew install dust

Run it the same way you would run du:

dust ~/Library

The key differences from du:

  • Sorted output by default. Largest directories appear at the top — no | sort -rh needed.
  • Bar chart in the terminal. Each row includes a proportional bar so you immediately see which folder dominates.
  • Color output. Sizes and bars are colored; different levels of the hierarchy get different shades.
  • Tree view. Subdirectories are shown indented under their parent so you see containment at a glance.
  • Parallel scanning. dust uses multiple threads, which makes it noticeably faster than du on large directory trees.

Useful flags:

  • -d N — depth limit
  • -n N — show only the top N results
  • -x — stay on one filesystem
  • --no-colors — plain output for scripts
  • -r — reverse sort (smallest first)

One honest limitation: dust's tree output can feel cluttered on very wide directory trees. It also truncates extremely long paths to fit the terminal width, which occasionally hides the exact path you want to copy.

When it is the right choice: interactive exploration in a local terminal when you want immediate visual clarity without launching a full TUI.

ncdu — the interactive TUI

ncdu (NCurses Disk Usage, version 2.9.2 via Homebrew in 2026) is a full-screen terminal application. It scans a directory tree, then lets you navigate interactively with arrow keys and delete files from inside the interface. Install it:

brew install ncdu

Launch it on your home Library:

ncdu ~/Library

ncdu first scans the entire tree (showing a progress indicator), then drops you into a sorted, navigable list. Press Enter to descend into a folder, q to quit, and — importantly — d to delete the highlighted item. That last point deserves a warning: deletion inside ncdu bypasses the Trash and is permanent. There is a confirmation prompt, but the file does not go to ~/.Trash. Be deliberate.

ncdu 2.x is also written in Zig and is significantly faster than the original C-based ncdu 1.x. Parallel scanning was added in 2.5 but is opt-in (--parallel).

Useful keys inside ncdu:

  • n — sort by name
  • s — sort by size (default)
  • d — delete highlighted item (permanent, not Trash)
  • i — show item info
  • e — toggle hidden files
  • ? — help screen

When it is the right choice: when you want to explore interactively and iteratively delete items in a single session, or when you are on a remote server over SSH where a GUI is unavailable.

Head-to-head comparison

Feature du (built-in) dust 1.2.4 ncdu 2.9.2 Crumb (GUI)
Installation None (built-in) brew install dust brew install ncdu Download Crumb
Sorted output No (pipe to sort) Yes, by default Yes, by default Yes
Color output No Yes Limited (ncurses) Yes (native UI)
Visual tree / map No Tree with bars Interactive tree Disk map + treemap
Interactive navigation No No Yes Yes
Delete files No No Yes (permanent, no Trash) Yes (moves to Trash)
Script-friendly Yes Yes (--no-colors) Limited No
Speed on large trees Slow (single-threaded) Fast (multi-threaded) Fast (Zig, opt-in parallel) Fast (native Swift)
Works over SSH Yes Yes Yes No
System Data / caches cleanup No No No Yes (one-click)
App leftover finder No No No Yes
Explains "safe to delete?" No No No Yes (AI assistant)

How to install and run each tool

du — no setup needed

  1. Open Terminal (or iTerm2).
  2. Run a quick summary of your Downloads folder:
    du -sh ~/Downloads
  3. List the top-level items in your Library sorted by size:
    du -d 1 -h ~/Library | sort -rh | head -20
  4. Restrict to a single volume to avoid crossing mount points:
    du -d 1 -h -x / | sort -rh | head -20

dust — quick visual scan

  1. Install once:
    brew install dust
  2. Scan your Caches folder and see the top offenders immediately:
    dust ~/Library/Caches
  3. Limit to the 10 largest items, two levels deep:
    dust -n 10 -d 2 ~/Library
  4. Use --no-colors if piping into another tool or logging output.

ncdu — interactive exploration

  1. Install once:
    brew install ncdu
  2. Launch an interactive scan of your user Library:
    ncdu ~/Library
  3. Wait for the scan to complete, then navigate with arrow keys.
  4. Press d to delete a highlighted folder. This is permanent — the file does not go to Trash. Confirm you know what the folder is before pressing d.
  5. Press q to quit.

What each tool cannot tell you

All three CLI tools share a fundamental limitation: they show you the size of files, but they cannot tell you whether any given file or folder is safe to remove. A 2 GB folder in ~/Library/Application Support might be critical app data or long-abandoned cruft from a deleted app — du, dust, and ncdu cannot distinguish them.

They also do not surface macOS-specific categories like System Data, purgeable space, or app leftover files scattered across ~/Library/Preferences, ~/Library/Application Support, and /Library/LaunchAgents. If you find a suspicious path and want to understand it before deleting, you need either careful research or a tool that has that context built in.

That is the gap that a native GUI tool like Crumb fills for users who want answers without the manual investigation. Its "Is this safe to delete?" assistant explains any folder in plain language, and its Uninstall tab finds app leftovers automatically. For everyday CLI use, though, the three tools above are excellent and fast.

The decision in plain terms

  • Use du when you are in a script, on a remote server, or need zero dependencies. Add | sort -rh | head -20 to make it useful.
  • Use dust when you are in a local terminal and want a fast, sorted, color tree with no further keystrokes. It is the best drop-in upgrade to du for interactive use.
  • Use ncdu when you want to explore interactively and delete items in the same session, especially over SSH. Be deliberate with d — deletions are permanent.
  • Use a GUI when you want to clean System Data, find app leftovers, or understand what a path does before you remove anything.

The three CLI tools are complementary, not competing. Many developers keep all three installed and reach for different ones depending on context. The Homebrew footprint is small, and switching between them takes a second — so there is no reason to commit to just one.

Reclaim your disk in one click

Crumb audits your whole Mac, tells you what's safe to delete, and frees the space in seconds — private, local, and Apple-notarized.

Download Crumb for macOS

Frequently asked questions

What is the difference between dust and du on macOS?
du is the BSD utility built into every macOS install. It works everywhere but outputs unsorted, uncolored results and requires piping through sort to be useful. dust is a Rust-based alternative you install via Homebrew (brew install dust) that sorts output by default, adds color, draws proportional bar charts, and uses multiple threads for faster scans. Both accept similar flags like -d for depth and -h for human-readable sizes.
Is ncdu safe to use on a Mac?
ncdu is safe to run and scan with. The risk is in its delete feature: pressing d inside ncdu permanently removes the file or folder without moving it to the Trash. There is a confirmation prompt, but the deletion bypasses macOS recovery options. Only delete items in ncdu when you are certain they are not needed.
How do I find the largest folders on my Mac using the Terminal?
With the built-in du: run du -d 1 -h ~/Library | sort -rh | head -20 to list the largest top-level folders inside your Library. With dust installed, simply run dust ~/Library and it sorts automatically. With ncdu, run ncdu ~/Library and navigate interactively.
Which disk usage command is fastest on macOS?
dust and ncdu 2.x are both noticeably faster than the built-in du on large directory trees because they use multi-threaded scanning. du is single-threaded and can take significantly longer on directories with hundreds of thousands of files, such as ~/Library or the system root.
When should I use a GUI disk cleaner instead of a CLI tool?
CLI tools like du, dust, and ncdu show file sizes but cannot identify what a path is for, find app leftover files, clean macOS System Data, or recover purgeable space. If you want to safely clean caches and logs, uninstall apps along with their scattered support files, or get an explanation of whether a folder is safe to delete, a native GUI tool designed for macOS cleanup is a better fit for that specific task.