Crates.io | diskus |
lib.rs | diskus |
version | |
source | src |
created_at | 2018-11-02 16:41:35.392484+00 |
updated_at | 2024-12-27 19:12:45.252482+00 |
description | A minimal, fast alternative to 'du -sh'. |
homepage | https://github.com/sharkdp/diskus |
repository | https://github.com/sharkdp/diskus |
max_upload_size | |
id | 94349 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
A minimal, fast alternative to du -sh
.
diskus
is a very simple program that computes the total size of the current directory. It is a
parallelized version of du -sh
. On my 8-core laptop, it is about ten times faster than du
with
a cold disk cache and more than three times faster with a warm disk cache.
> diskus
9.59 GB (9,587,408,896 bytes)
The following benchmarks have been performed with hyperfine on a moderately large folder (15GB, 100k directories, 400k files). Smaller folders are not really of any interest since all programs would finish in a reasonable time that would not interrupt your workflow.
In addition to du
and diskus
, we also add tin-summer (sn
) and
dust
in our comparison. Both are also written in Rust and provide
much more features than diskus
(check them out!). The optimal number of threads for sn
(-j
option) was
determined via hyperfine --parameter-scan
.
sudo -v
hyperfine --prepare 'sync; echo 3 | sudo tee /proc/sys/vm/drop_caches' \
'diskus' 'du -sh' 'sn p -d0 -j8' 'dust -d0'
(the sudo
/sync
/drop_caches
commands are a way to
clear the filesystem caches between benchmarking runs)
Command | Mean [s] | Min [s] | Max [s] | Relative |
---|---|---|---|---|
diskus |
1.746 ± 0.017 | 1.728 | 1.770 | 1.00 |
du -sh |
17.776 ± 0.549 | 17.139 | 18.413 | 10.18 |
sn p -d0 -j8 |
18.094 ± 0.566 | 17.482 | 18.579 | 10.36 |
dust -d0 |
21.357 ± 0.328 | 20.974 | 21.759 | 12.23 |
On a warm disk cache, the differences are smaller:
hyperfine --warmup 5 'diskus' 'du -sh' 'sn p -d0 -j8' 'dust -d0'
Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
---|---|---|---|---|
diskus |
500.3 ± 17.3 | 472.9 | 530.6 | 1.00 |
du -sh |
1098.3 ± 10.0 | 1087.8 | 1122.4 | 2.20 |
sn p -d0 -j8 |
1122.2 ± 18.2 | 1107.3 | 1170.1 | 2.24 |
dust -d0 |
3532.1 ± 26.4 | 3490.0 | 3563.1 | 7.06 |
You can download the latest Debian package from the
release page and install it via dpkg
:
wget "https://github.com/sharkdp/diskus/releases/download/v0.8.0/diskus_0.8.0_amd64.deb"
sudo dpkg -i diskus_0.8.0_amd64.deb
pacman -S diskus
Or download diskus-bin from the AUR.
xbps-install diskus
You can install diskus
with Homebrew:
brew install diskus
Or with MacPorts:
sudo port install diskus
pkgman install diskus
nix-env -iA nixos.diskus
Or add it to environment.systemPackages
in your configuration.nix
.
Check out the release page for binary builds.
If you have Rust 1.50 or higher, you can install diskus
from source via cargo
:
cargo install diskus
Windows-internal tools such as Powershell, Explorer or dir
are not respecting hardlinks or
junction points when determining the size of a directory. diskus
does the same and counts
such entries multiple times (on Unix systems, multiple hardlinks to a single file are counted
just once).
Licensed under either of
at your option.