Best Disk Usage Analyzers
Compare dust, dua, and diskonaut plus pdu, cull and erdtree for finding what fills your disk from the terminal.
Updated
short verdict
Start with dust if you want a one-shot bar-chart view of the biggest directories. Pick dua for parallel scans with an interactive TUI that deletes, or diskonaut if you prefer a treemap. Choose pdu for JSON pipelines and erdtree for gitignore-aware project trees.
A disk usage analyzer answers one question: which directories and files are taking the space. The tools here split into three groups. dust, pdu and erdtree print a tree and exit. dua, diskonaut and cull open an interactive TUI where you can delete. They also differ in how they show size (bars, treemap, or plain tree) and in scripting support such as JSON output.
this page is for
- Developers who need to find what filled a disk
- Admins scripting disk reports with JSON output
- Anyone cleaning up large files from a terminal UI
Prints a bar-chart tree of the largest subdirectories with no sorting or manual drilling needed.
best for
- Quick one-shot checks of a directory
- Scripted reports via JSON
- Filtering by file type or regex
strengths
- Recurses automatically and shows a terminal-height number of entries with percentage bars
- Filters: -e/-v regex, -z minimum size, -D/-F dirs or files only, -t group by file type
- JSON output with -j and persistent defaults in ~/.config/dust/config.toml
- Installs via Homebrew, Cargo (du-dust) or Snap
weaknesses
- Output is static; there is no interactive browsing or deletion
- Many single-letter flags take time to learn
Scans in parallel and offers an interactive mode where you navigate and delete files with deletion safeguards.
best for
- Scanning large SSD-backed trees fast
- Exploring and deleting in one tool
- Windows, macOS and Unix users
strengths
- Parallel traversal by default, built on jwalk
- Interactive TUI with multi-stage deletion protection
- Runs on Unix-like systems, macOS and Windows
- Configurable keyboard behavior, such as whether Esc goes to the parent or quits
weaknesses
- Visualization is a list view, not bars or a treemap
- No JSON output or regex filtering is documented by the project
Shows disk usage as an interactive treemap, so large blocks stand out, and lets you delete from it.
best for
- Visual learners who prefer area over lists
- Finding a few huge folders
- Cleanup with a running total of freed space
strengths
- Treemap visualization of files and folders
- You can navigate while the scan continues in the background
- Tracks space freed during the session
- Packaged for Homebrew, DNF, AUR, Nix and Cargo, on Linux, macOS and Windows
weaknesses
- Indexes file metadata in memory, which matters on very large trees
- No JSON output or scripting interface documented
Parallel tree analyzer with JSON input and output, suited to piping results into other tools.
best for
- Scripting and piping disk reports
- Hardlink-aware accounting
- Comparing speed against similar tools
strengths
- --json-output and --json-input flags work through Unix pipes
- Hardlink detection with optional deduplication
- Progress reporting and adjustable depth and chart size
- Project publishes benchmarks against dust, dua, ncdu and gdu
weaknesses
- Ignores reflinks on copy-on-write filesystems
- Does not follow symbolic links
- Installation listed only via Pacman and Cargo
Combines du, tree, find and ls in one multi-threaded tool that respects .gitignore by default.
best for
- Sizing project directories without ignored files
- Flat du-style or inverted tree output
- Searching by regex or glob alongside sizes
strengths
- Reads .gitignore and hidden-file rules by default
- Measures bytes (logical or physical), blocks, word count or line count
- Tree, inverted tree and flat du-like layouts, plus a long view with permissions and timestamps
- TOML config, shell completions, and installs via Homebrew, Cargo or Scoop
weaknesses
- Hiding ignored files by default can hide what is using space until you change the flags
- Broader scope than a single-purpose analyzer, so there are more options to learn
A TUI focused on finding the largest files and removing them, with trash support and a read-only mode.
best for
- Finding the biggest files across subdirectories
- Cautious deletion with trash and dry-run
- macOS users who want Quick Look previews
strengths
- Largest tab deep-scans all subdirectories for the biggest files
- Multi-select files or ranges, then move to trash or delete permanently with confirmation
- Read-only mode and dry-run previews
- Sorts by size, name or modification date and filters by name or extension
weaknesses
- Distributed through a custom Homebrew tap, a custom APT repo, or go install
- No JSON output or non-interactive report documented
How to choose
The deciding factor is usually whether you want a printed report or an interactive session.
- Fastest answer with no interaction: dust, with bars and automatic recursion.
- Interactive deletion with safeguards: dua, which has multi-stage deletion protection.
- Visual overview: diskonaut, which draws a treemap.
- Scripting and pipes: pdu, with --json-input and --json-output.
- Biggest files only, with trash support: cull, via its Largest tab and read-only mode.
When not to use these
- You need to find duplicate files, since none of these tools are documented as doing that.
- You need a remote or historical view of disk usage over time, since these tools scan the local filesystem on demand.
FAQ
- Which disk usage analyzer is best as a default?
- dust is the simplest default. It recurses automatically and draws percentage bars, so one command shows the biggest subdirectories.
- Which tools let me delete files?
- dua, diskonaut and cull all delete from their interactive interfaces. cull can also move files to trash and has a read-only mode.
- Which tools produce JSON?
- dust writes JSON with -j. pdu writes it with --json-output and reads it with --json-input.
- Does any tool respect .gitignore?
- erdtree does by default, along with hidden-file rules. That suits project directories but can hide ignored files that take up space.