dust: du That Shows You the Fat

du -sh * works until it doesn’t. dust draws the sizes so the offender is obvious in one glance.

dust (package often du-dust) is a Rust rewrite of the “where did my disk go” workflow. It walks a tree, aggregates sizes, and prints a bar chart of the biggest offenders. Pair it with duf (mount-level) and you cover both “which filesystem” and “which directory.” When a build server or laptop is full, this is the five-second first move.

install

macOS
# macOS
brew install dust
Debian/Ubuntu
# Debian/Ubuntu (package name may be du-dust)
sudo apt install du-dust || cargo install du-dust
Fedora
# Fedora
sudo dnf install dust
Arch
# Arch
sudo pacman -S dust

examples

# Biggest items in the current tree (default depth is sane)
dust
# Limit depth — overview without drowning in leaves
dust -d 2 /var
# Apparent size vs block size when sparse files confuse you
dust -s ~/Downloads
# Number of files instead of bytes
dust -f
# Reverse order / more entries
dust -r -n 30
# Ignore junk directories
dust -X node_modules -X .git -X target

pro tip

Run duf first to see which mount is full, then dust -d 2 on that mount path. Two tools, two questions: which disk, then which folder.

honest limits

dust has to walk the tree — on multi-terabyte network mounts it will take wall time no matter how pretty the bars are. Permissions errors on directories you cannot read will under-count; run with appropriate rights when auditing system paths. It is not a live file-system monitor; for continuous watch use something else. Apparent size vs allocated blocks still confuses people on compressed APFS/ZFS — read the flags before you panic.