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.exe | 3410432 字节 | 单文件,无依赖 |
| 版本 | 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.4G | 307.6G | 21.8G | 93.4% |
| D:\ | 931.5G | 316.5G | 615.1G | 34.0% |
| E:\ | 146.5G | 62.4G | 84.0G | 42.6% |
C 盘只剩 21.8G
329.4G 的盘用了 307.6G,剩 21.8G,93.4% 的占用率。这个数字比「还剩多少」更直观:低于 10% 可用空间时,Windows 更新和临时文件都会开始报错。

虚拟盘被单独归组
表头写的是 3 local devices,说明它把本地盘和网络盘、虚拟盘分开统计。-only local 参数可以只留这一组,输出字节数不变,还是 899。
158 毫秒出结果
不带参数跑一次 158 毫秒,加 -only local 是 149 毫秒,两次输出都是 899 字节。
| 命令 | 耗时 | 输出 |
|---|---|---|
| duf | 158 ms | 899 字节 |
| duf -only local | 149 ms | 899 字节 |
9 毫秒的差别在过滤
两次输出体积一样,说明这机器上没有网络盘和虚拟盘要被过滤掉。9 毫秒的差距是参数解析与一次判断的开销,在这个量级上可以忽略。
它不遍历文件
158 毫秒里没有任何目录遍历。用量数字来自文件系统的统计信息,所以盘里放 100 万个文件还是一样快。
--json 给脚本用
加 --json 输出数组,每个挂载点一个对象,字段全是原始字节数。
| 字段 | D 盘的值 |
|---|---|
| mount_point | D:\ |
| total | 1000202039296 |
| free | 660304007168 |
| used | 339898032128 |
| fs_type | NTFS |
字节数比 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。




