5 个版本 (破坏性)

0.7.0 2021 年 11 月 14 日
0.6.0 2019 年 9 月 21 日
0.5.0 2018 年 11 月 25 日
0.4.0 2018 年 11 月 5 日
0.3.0 2018 年 11 月 2 日

#2494命令行工具

Download history 31/week @ 2024-03-11 28/week @ 2024-03-18 36/week @ 2024-04-01 18/week @ 2024-04-08 81/week @ 2024-04-15 25/week @ 2024-04-22 3/week @ 2024-04-29 9/week @ 2024-05-06 5/week @ 2024-05-13 8/week @ 2024-05-20 8/week @ 2024-05-27 15/week @ 2024-06-03 39/week @ 2024-06-10 11/week @ 2024-06-17 14/week @ 2024-06-24

每月 80 次下载

MIT/Apache

18KB
249

diskus

CICD

是 'du -sh' 的最小化、快速替代品。

diskus 是一个计算当前目录总大小的非常简单的程序。它是 du -sh 的并行版本。在我的 8 核笔记本电脑上,它比具有冷磁盘缓存的 du 快 10 倍,具有热磁盘缓存时则快 3 倍以上。

> diskus
9.59 GB (9,587,408,896 bytes)

基准测试

以下基准测试是在一个适度大的文件夹(15GB,100k 个目录,400k 个文件)上使用 hyperfine 进行的。较小的文件夹实际上并不重要,因为所有程序都会在合理的时间内完成,而不会打断您的工作流程。

除了 dudiskus 之外,我们还比较了 tin-summer (sn) 和 dust。这两个也是用 Rust 编写的,并且比 diskus 提供了更多的功能(查看它们!)。通过 hyperfine -parameter-scan 确定了 sn-j 选项)的最佳线程数。

冷磁盘缓存

sudo -v
hyperfine --prepare 'sync; echo 3 | sudo tee /proc/sys/vm/drop_caches' \
    'diskus' 'du -sh' 'sn p -d0 -j8' 'dust -d0'

sudo/sync/drop_caches 命令是在基准测试运行之间清除文件系统缓存的 方法

命令 平均值 [s] 最小值 [s] 最大值 [s] 相对值
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

热磁盘缓存

在热磁盘缓存上,差异较小

hyperfine --warmup 5 'diskus' 'du -sh' 'sn p -d0 -j8' 'dust -d0'
命令 平均值 [ms] 最小值 [ms] 最大值 [ms] 相对值
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

安装

基于Debian的系统

您可以从发布页面下载最新的Debian软件包,并通过dpkg安装。

wget "https://github.com/sharkdp/diskus/releases/download/v0.7.0/diskus_0.7.0_amd64.deb"
sudo dpkg -i diskus_0.7.0_amd64.deb

基于Arch的系统

pacman -S diskus

或者从AUR下载diskus-bin

基于Void的系统

xbps-install diskus

在macOS上

您可以使用Homebrew安装diskus

brew install diskus

或者使用MacPorts

sudo port install diskus

在Haiku上

pkgman install diskus

在NixOS上

nix-env -iA nixos.diskus

或者将其添加到您的configuration.nix文件中的environment.systemPackages

在其他系统上

请查看发布页面以获取二进制构建版本。

通过cargo

如果您有Rust 1.50或更高版本,您可以通过cargo从源代码安装diskus

cargo install diskus

Windows注意事项

Windows内部工具,如PowerShell、资源管理器或dir,在确定目录大小时不尊重硬链接或链接点。diskus也是如此,并多次计数此类条目(在Unix系统上,对单个文件的多个硬链接只计数一次)。

许可证

根据您的选择,许可如下

依赖项

~3MB
~49K SLoC