Linux 命令行工具 ncdu 磁盘占用分析利器
我们在使用 Linux 时经常会遇到这种场景,磁盘满了,但不知道哪里占用的。传统方式为:
前言
我们在使用 Linux 时经常会遇到这种场景,磁盘满了,但不知道哪里占用的。传统方式为:
- 使用
df -h查看各个磁盘占用空间 - 使用
du -h --max-depth=1 | sort -hr查看根目录或者在你认为可能磁盘占用较大的空间执行,返回了该文件夹中每个文件及文件夹的占用大小。 - 然后根据第二步返回的结果,再去子目录执行,直到找到占用较大的文件。
- 对占用较大的文件使用
rm xxx删除,如果是文件夹,还需要rm -rf folder,这个命令是很危险的,万一输错就麻烦了。
现在使用 ncdu 的话,只需要执行一次就可以,无需重复上述的 2 和 3 步骤,且删除文件也很方便,不会出错。
安装
普通安装
常见操作系统的包管理中已经包含了 btop 工具,直接安装即可
# ubuntu
sudo apt install ncdu
# centos
sudo yum install ncdu不过安装后可能版本不是最新的,可以下载最新二进制文件安装。
二进制安装
这里使用的版本是 2.2.1,这是我写这篇文章时的最高版本,如果你想要更新的版本,或者 CPU 架构不同,可去 https://dev.yorhel.nl/ncdu 查看项目主页介绍。
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使用
使用起来就很简单了。
# 统计当前所在目录及子目录的文件占用情况
ncdu
# 统计指定的 /data 目录
ncdu /data
# 将 /data 目录的情况输出到 ~/ncdu.txt
ncdu /data -o ~/ncdu.txt
# 加载本地根据,而不是进行实时统计
ncdu -f ~/ncdu.txt 如同下图所示,他还支持 vim 快捷键,或者大家习惯性的 ↑ ↓←→回车键来切换目录,还支持按文件名、文件大小、子文件数量排序,按 d 删除文件(会二次确认)
