Linux 磁盘空间占用分析神器:ncdu 实用指南
在 Linux 运维过程中,硬盘爆满是常见的痛点。ncdu(NCurses Disk Usage)是一款基于文本界面的磁盘空间分析工具。它扫描速度极快,能将文件夹按从大到小直观排列,并支持在终端里直接删除文件,是排查盘爆满的绝对利器。
🛠️ 第一步:快速安装 ncdu
ncdu 体积非常小(通常不到 1MB),绝大多数 Linux 发行版的官方源都自带了它。请根据你的系统执行以下命令:
# Debian / Ubuntu / 宝塔默认系统
sudo apt update && sudo apt install ncdu -y
# CentOS / RHEL / Fedora
sudo yum install epel-release -y && sudo yum install ncdu -y
🚀 第二步:常用扫描命令
安装完成后,你可以根据不同场景选择不同的扫描方式。推荐使用 -x 参数,避免扫描到挂载的外部虚拟盘。
# 场景 1:扫描整个系统(最常用)
# -x 代表“不跨越文件系统”,只扫描当前硬盘分区
sudo ncdu /
# 场景 2:扫描指定目录(如宝塔网站目录)
ncdu /www
# 场景 3:导出扫描结果(适合 TB 级大硬盘后台运行)
sudo ncdu -o scan_result.txt /
ncdu -f scan_result.txt # 瞬间打开查看,不占内存
⌨️ 第三步:核心快捷键指南
在 ncdu 界面中,你不需要输入任何命令,全靠键盘快捷键就能完成所有操作:
| 快捷键 | 功能描述 | 常用指数 |
|---|---|---|
| ↑ / ↓ | 上下移动光标,选择文件或文件夹 | ⭐⭐⭐⭐⭐ |
| ↩ 回车 / → | 进入选中的文件夹 | ⭐⭐⭐⭐⭐ |
| ← | 返回上一级目录 | ⭐⭐⭐⭐⭐ |
d |
删除(Delete)当前选中的文件(有二次确认) | ⭐⭐⭐⭐⭐ |
| q | 退出(Quit) ncdu 工具 | ⭐⭐⭐⭐⭐ |
| s | 按 文件大小 从大到小排序(默认) | ⭐⭐⭐ |
⚠️ 避坑与高级安全技巧
1. 物理删除警告:
使用 d 键删除文件时,系统会跳过回收站直接进行物理删除。对于不确定用途的系统文件,切忌盲目删除。
2. 删了文件空间没释放?
如果在 ncdu 里删除了一个巨大的日志文件,但用 df -h 查看空间依然没变,说明有进程正抓着该文件不放。
解决办法:在终端执行 lsof | grep deleted 查出是哪个服务(如 Nginx 或 MySQL)占用了它,然后重启该服务即可彻底释放空间。