dust Documentation

A more intuitive version of du in rust

12,561 stars Rust Rust 1 file ยท ~1,324 tokens
RAW Doc

Technical Documentation: bootandy/dust

โ„น๏ธ Provenance: Multi-Tier Ingestion ยท CodeWiki Reference

Overview (`README.md`)

Dust

du + rust = dust. Like du but more intuitive.

Why

Because I want an easy way to see where my disk is being used.

Demo

Study the above demo

  • We cd into a webapp it is 72K in size.

  • We see 32K in the src folder. Note the bar jumps to 44%. Half of the webapp is in src

  • We see 8K in the src/utils. The bar jumps down to 11% but a shadow stays at 44% showing that it is part of the src folder

  • We then demo the -d 2 flag - Show a depth of 2 folders

  • We demo the -n 5 flag - Show only 5 items (by default we show terminal height items)

Install

Quick Install (Linux, macOS, Windows)

bash
curl -sSfL https://raw.githubusercontent.com/bootandy/dust/refs/heads/master/install.sh | sh

Cargo [](https://repology.org/project/du-dust/versions)

Cargo

  • cargo install du-dust

๐Ÿบ Homebrew (Mac OS)

  • brew install dust

๐Ÿบ Homebrew (Linux)

  • brew install dust

DNF (Fedora Linux)

  • sudo dnf install du-dust

[Snap](https://ubuntu.com/core/services/guide/snaps-intro) Ubuntu and [supported systems](https://snapcraft.io/docs/installing-snapd)

  • snap install dust

Note: dust installed through snap can only access files stored in the /home directory. See danie-dejager/dust-snap#2 for more information.

[mise](https://github.com/jdx/mise)

  • mise use -g dust

[Pacstall](https://github.com/pacstall/pacstall) (Debian/Ubuntu)

  • pacstall -I dust-bin

Anaconda (conda-forge)

  • conda install -c conda-forge dust

[deb-get](https://github.com/wimpysworld/deb-get) (Debian/Ubuntu)

  • deb-get install du-dust

[x-cmd](https://www.x-cmd.com/pkg/#VPContent)

  • x env use dust

Windows:

  • scoop install dust
  • Windows GNU version - works
  • Windows MSVC - requires: VCRUNTIME140.dll

Download

  • Download Linux/Mac binary from Releases
  • unzip file: tar -xvf _downloaded_file.tar.gz
  • move file to executable path: sudo mv dust /usr/local/bin/

Overview

Dust is meant to give you an instant overview of which directories are using disk space without requiring sort or head. Dust will print a maximum of one 'Did not have permissions message'.

Dust will list a slightly-less-than-the-terminal-height number of the biggest subdirectories or files and will smartly recurse down the tree to find the larger ones. There is no need for a '-d' flag or a '-h' flag. The largest subdirectories will be colored.

The different colors on the bars: These represent the combined tree hierarchy & disk usage. The shades of grey are used to indicate which parent folder a subfolder belongs to. For instance, look at the above screenshot. .steam is a folder taking 44% of the space. From the .steam bar is a light grey line that goes up. All these folders are inside .steam so if you delete .steam all that stuff will be gone too.

If you are new to the tool I recommend to try tweaking the -n parameter. dust -n 10, dust -n 50.

Usage

text
/* Detailed source-code truncated for AI context efficiency. */

Config file

Dust has a config file where the above options can be set.
Either: $XDG_CONFIG_HOME/dust/config.toml (falling back to
~/.config/dust/config.toml) or ~/.dust.toml

text
$ cat ~/.config/dust/config.toml
reverse=true
limit-filesystem=true

Keys use the long flag name in kebab-case. See config/config.toml for a fuller sample.

Alternatives

Why to use Dust over the Alternatives

Dust simply Does The Right Thing when handling lots of small files & directories. Dust keeps the output simple by only showing large entries.

Tools like ncdu & baobab, give you a view of directory sizes but you have no idea where the largest files are. For example directory A could have a size larger than directory B, but in fact the largest file is in B and not A. Finding this out via these other tools is not trivial whereas Dust will show the large file clearly in the tree hierarchy

Dust will not count hard links multiple times (unless you want to -s).

Typing dust -n 90 will show you your 90 largest entries. -n is not quite like head -n or tail -n, dust is intelligent and chooses the largest entries


--- METRICS ---