duf 0.9.1 是磁盘用量查看工具,单个 duf.exe 3410432 字节,压缩包 1362804 字节,列出全部挂载点用 158 毫秒。

它要解决的是:想知道哪块盘快满了,图形界面要点开「此电脑」等图标加载,命令行工具又各说各的格式。

这次在装了 3 块本地盘和若干虚拟盘的机器上跑了两遍,另外看了它的 JSON 输出,确认能不能接进脚本。

一个 3410432 字节的 exe

压缩包 1362804 字节,解开只有一个 exe。Go 编译的静态程序,不依赖任何运行库。

项值说明
压缩包1362804 字节duf_0.9.1_windows_x86_64.zip
duf.exe3410432 字节单文件,无依赖
版本0.9.1输出里带 commit b2f01a1 与构建日期
--help 输出1643 字节全部参数一屏能看完

版本号里带 commit 和构建日期

duf 0.9.1 (b2f01a1ecbfd1af63015b83296c50a95260f97b1) (built on 2025-09-08) 这一行把哈希和日期都写进来了。排查「用的是不是最新构建」时,看这行比看 0.9.1 更有用。

1643 字节的帮助

参数不多,一屏能看完,没有需要翻文档才能用的选项。这个体量说明它把功能收得比较紧。

三个本地设备,一张表

默认输出是一张带边框的表,第一行写「3 local devices」,下面是每个挂载点的一行。

挂载点总量已用可用使用率
C:\329.4G307.6G21.8G93.4%
D:\931.5G316.5G615.1G34.0%
E:\146.5G62.4G84.0G42.6%

C 盘只剩 21.8G

329.4G 的盘用了 307.6G,剩 21.8G,93.4% 的占用率。这个数字比「还剩多少」更直观:低于 10% 可用空间时,Windows 更新和临时文件都会开始报错。

duf 0.9.1 在 cmd 里输出三块本地盘的表格:表头写 3 local devices,列为 MOUNTED ON / SIZE / USED / AVAIL / USE% / TYPE / FILESYSTEM,C 盘 329.4G 用了 93.4% 只剩 21.8G,D 盘 931.5G 用 34.0%,E 盘 146.5G 用 42.6%

虚拟盘被单独归组

表头写的是 3 local devices,说明它把本地盘和网络盘、虚拟盘分开统计。-only local 参数可以只留这一组,输出字节数不变,还是 899。

158 毫秒出结果

不带参数跑一次 158 毫秒,加 -only local 是 149 毫秒,两次输出都是 899 字节。

命令耗时输出
duf158 ms899 字节
duf -only local149 ms899 字节

9 毫秒的差别在过滤

两次输出体积一样,说明这机器上没有网络盘和虚拟盘要被过滤掉。9 毫秒的差距是参数解析与一次判断的开销,在这个量级上可以忽略。

它不遍历文件

158 毫秒里没有任何目录遍历。用量数字来自文件系统的统计信息,所以盘里放 100 万个文件还是一样快。

--json 给脚本用

加 --json 输出数组,每个挂载点一个对象,字段全是原始字节数。

字段D 盘的值
mount_pointD:\
total1000202039296
free660304007168
used339898032128
fs_typeNTFS

字节数比 G 更好算

total 1000202039296 加回去正好等于 free 加 used。脚本里判断「剩余低于 50G」时直接用字节比,不用先换算单位。

表格给人看,JSON 给程序看

默认的边框表适合终端里瞄一眼,要接监控就得换 JSON。同一个命令两种输出,省掉一次解析文本的工作。

几个真踩过的点

下面三条在这次测试里真实出现,附当时的处理方式。

现象原因处理
输出里混着网络盘和虚拟盘默认列出所有挂载点加 -only local 只留本地盘
脚本里解析表格很别扭默认是带边框的表格加 --json 拿结构化数据
看着还有 21.8G 却报空间不足93.4% 占用触发系统限制按百分比判断,别只看剩余字节

21.8G 不等于够用

329.4G 的盘剩 21.8G,看着不少,但占用率已经 93.4%。系统更新、休眠文件和临时文件都要预留空间,这个水位下容易失败。

-only 只影响显示

加了 -only local 输出还是 899 字节,因为它只是把非本地项过滤掉。要确认过滤是否生效,得看表头那个设备数量。

什么场景值得上

要在一屏里看完全部盘的占用、又不想开图形界面时,它把这件事压到 158 毫秒。

场景合适度说明
快速看所有盘占用高158 毫秒,一张表
脚本里监控剩余空间高--json 给原始字节
找出哪个目录占空间低只到挂载点,不进目录
查看单个大文件低不列文件

它和目录分析工具分工不同

duf 回答「哪块盘快满了」,分析类工具回答「这块盘里哪个文件夹最大」。两个问题不一样,需要的工具也不一样。

授权与费用

MIT 许可,个人和商业环境都不收费。源码在 GitHub 上,主要语言 Go,release 覆盖 Windows、macOS、Linux 与各 BSD。