如果你觉得 Linux 里的 du 命令用起来不够直观,或者扫描速度太慢,那么 gdu (Go Disk Usage) 值得一试。它本质上是一个 du 的现代化替代品,用 Go 语言编写,专为 SSD 和现代硬件优化,能利用并行处理能力大幅提升扫描速度。根据其开发者的基准测试,在处理大型文件系统时,gdu 比 ncdu 快约 5 倍,比传统 du 命令快约 4.8 倍。
🛠️ 准备工作
在开始之前,你需要做好以下准备:
- 确保飞牛NAS(fnOS)已开启SSH功能:在飞牛NAS的Web管理界面,找到“系统设置” -> “SSH”,将SSH功能开启并启用用户的ssh权限。
- 准备一个SSH客户端:在电脑上准备一个能进行SSH连接的终端工具。
- 连接到你的NAS。
📦 安装 gdu
sudo apt update
sudo apt install gdu
🚀 基础使用指南
1. 启动交互模式——最直观的用法
这是 gdu最核心和最酷的功能。直接在SSH终端中输入 gdu,它会扫描当前目录,并打开一个彩色、可视化的交互界面。
- 扫描指定目录:例如,你想扫描Docker的存储目录,可以输入
gdu /vol1/docker。
- 查看所有磁盘:输入
gdu -d,可以快速查看飞牛NAS上所有挂载的磁盘及空间使用情况。
2. 非交互模式——快速获取结果
当你只是想简单看一下某个目录的大小,而不需要进入复杂的交互界面时,非交互模式就非常有用。
- 查看当前目录大小:
gdu -n --no-progress
- 查看指定目录的总计大小:
gdu -nps /path/to/directory(-p不显示进度条,-s只显示总计大小)。
3. 导航与操作——像专家一样使用键盘
进入 gdu的交互界面后,它的操作逻辑非常流畅。
| 功能 |
快捷键 |
说明 |
| 移动光标 |
↑ / k 或 ↓ / j |
在文件和目录间上下移动,它支持类Vim风格,熟悉Vim的用户会感到非常亲切-。 |
| 进入/返回 |
Enter 或 → / l |
进入选中的目录-。 |
|
← / h |
返回上一级目录。 |
| 排序 |
s |
按文件大小排序(默认)。 |
|
n |
按文件名排序。 |
|
c |
按项目数量排序。 |
| 关键操作 |
d |
删除选中的文件或目录(⚠️ 永久删除,不进回收站,请谨慎使用!)-。 |
|
? |
显示帮助菜单。 |
|
q 或 Ctrl+C |
退出程序。 |
💡 实践小贴士
- 扫描大型存储池:
gdu专为SSD做了并行读取优化,速度飞快。如果你的飞牛NAS是ZFS或RAID阵列,用 gdu扫描飞牛NAS的大型影音仓库或备份文件夹,能极大节省等待时间。
- 排查磁盘空间不足:当飞牛NAS提示磁盘空间不足时,
gdu是排查“磁盘**”的利器。直接扫描根目录(sudo gdu /),交互界面会立刻将大文件和文件夹按大小降序排列,哪里占空间最大一目了然。
- 日常清理:配合
gdu的交互式界面,可以快速定位并清理下载缓存、Docker日志等无用文件,释放空间。
❓ 常见问题 (FAQ)
- Q: 提示
gdu: command not found?
A: 这说明 gdu没有成功安装。请检查你的安装步骤,尤其是手动安装时是否将可执行文件移动到了 /usr/local/bin这样的系统路径下。
- Q: 按
d 键删除文件,没有提示直接删除了?
A: 是的,gdu的删除操作是永久性的,不会进入回收站。因此,在执行删除操作前,请务必反复确认,这也是在SSH终端中操作的基本安全准则。
- Q:
gdu 和 du 命令显示的大小为何有差异?
A: 这通常是正常的。du默认显示的是磁盘实际占用的空间(可能包含块大小因素),而 gdu显示的是文件本身的理论大小。另外,du通常是单线程扫描,而 gdu是多线程并行扫描,这也可能导致性能感知上的差异。
- Q:
gdu 能替代飞牛NAS自带的文件管理器吗?
A: 不能完全替代。飞牛NAS自带的Web文件管理器功能强大且直观。gdu是命令行下进行快速磁盘分析和清理的利器,两者使用场景不同,是很好的互补关系。