Loading... ## 前言 我们在使用 Linux 时经常会遇到这种场景,磁盘满了,但不知道哪里占用的。传统方式为: 1. 使用 `df -h` 查看各个磁盘占用空间 2. 使用 `du -h --max-depth=1 | sort -hr` 查看根目录或者在你认为可能磁盘占用较大的空间执行,返回了该文件夹中每个文件及文件夹的占用大小。 3. 然后根据第二步返回的结果,再去子目录执行,直到找到占用较大的文件。 4. 对占用较大的文件使用 `rm xxx` 删除,如果是文件夹,还需要 `rm -rf folder` ,这个命令是很危险的,万一输错就麻烦了。 现在使用 [`ncdu`](https://dev.yorhel.nl/ncdu) 的话,只需要执行一次就可以,无需重复上述的 2 和 3 步骤,且删除文件也很方便,不会出错。 ## 安装 ### 普通安装 常见操作系统的包管理中已经包含了 `btop` 工具,直接安装即可 ```bash # ubuntu sudo apt install ncdu # centos sudo yum install ncdu ``` 不过安装后可能版本不是最新的,可以下载最新二进制文件安装。 ### 二进制安装 这里使用的版本是 `2.2.1`,这是我写这篇文章时的最高版本,如果你想要更新的版本,或者 CPU 架构不同,可去 [https://dev.yorhel.nl/ncdu](https://dev.yorhel.nl/ncdu) 查看项目主页介绍。 ```bash wget --no-check-certificate https://dev.yorhel.nl/download/ncdu-2.2.1-linux-x86_64.tar.gz tar -zxvf ncdu-2.2.1-linux-x86_64.tar.gz ``` ## 使用 使用起来就很简单了。 ```bash # 统计当前所在目录及子目录的文件占用情况 ncdu # 统计指定的 /data 目录 ncdu /data # 将 /data 目录的情况输出到 ~/ncdu.txt ncdu /data -o ~/ncdu.txt # 加载本地根据,而不是进行实时统计 ncdu -f ~/ncdu.txt ``` 如同下图所示,他还支持 vim 快捷键,或者大家习惯性的 ↑ ↓←→回车键来切换目录,还支持按文件名、文件大小、子文件数量排序,按 d 删除文件(**会二次确认**) ![1674008750697.png](https://cdn.jun6.net/2023/01/18/18f17081d3e33.png) 最后修改:2023 年 01 月 18 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请我喝杯咖啡吧。