dua (-> Disk Usage Analyzer) is a tool to conveniently learn about the usage of disk space of a given directory. It's parallel by default and will max out your SSD, providing relevant information as fast as possible. Optionally delete superfluous data, and do so more quickly than rm
.
sh
curl -LSfs https://raw.githubusercontent.com/byron/dua-cli/master/ci/install.sh | \
sh -s -- --git byron/dua-cli --crate dua
See the releases section for manual installation.
Via cargo
, which can be obtained using rustup
``` cargo install dua-cli
cargo install dua-cli --no-default-features ```
Via xbps
on your VoidLinux system.
xbps-install dua-cli
Via dnf
on your Fedora system.
sudo dnf install dua-cli
Via pacman
on your ArchLinux system.
sudo pacman -S dua-cli
You will find pre-built binaries for Windows in the releases section. Alternatively, install via cargo as in
cargo install dua-cli
```bash
dua
dua *
dua aggregate --help ```
Launch into interactive mode with the i
or interactive
subcommand. Get help on keyboard
shortcuts with ?
.
Use this mode to explore, and/or to delete files and directories to release disk space.
Please note that great care has been taken to prevent accidential deletions due to a multi-stage process, which makes this mode viable for exploration.
bash
dua i
dua interactive
Please note that all the following assumes a unix system. On Windows, the linux subsystem should do the job.
bash
make tests
make
crossterm
works everywhere!Why add complexity to support termion
if crossterm
works everywhere? The answer is compile time and binary size, which both are larger
when using crossterm
. Thus on Unix we still build with termion
, but there is no reason to stop supporting it once crossterm
has no
disadvantages.
The crosstermion
crate makes handling this a bit less cumbersome.
Thanks to jwalk, all there was left to do is to write a command-line interface. As jwalk
matures, dua should benefit instantly.
dua
tests/fixtures
which don't render correctly in interactive mode.
This can be due to graphemes not interpreted correctly. With Chinese characters for instance,
column sizes are not correctly computed, leading to certain columns not being shown.
In other cases, the terminal gets things wrong - I use alacritty, and with certain characaters it
performs worse than, say iTerm3.
See https://github.com/minimaxir/big-list-of-naughty-strings/blob/master/blns.txt for the source.u32::max_value() - 1
) entries.
u32
(I guess)petgraph
crate, which declares it as unsafe
to use u64 for instance.