计算机用户往往会在多年内积累大量数据,无论是重要的个人项目、数码照片、视频、音乐还是代码仓库。虽然现在的硬盘往往都很大,但有时您需要退后一步,评估一下您实际在驱动器上存储了什么。经典的 Linux 命令 df
和 du
是快速了解驱动器上内容的方式,它们提供了可靠的报告,易于解析和处理。这对于脚本编写和处理非常有用,但人脑并不总是能很好地处理数百行原始数据。考虑到这一点,ncdu
命令旨在提供关于您硬盘上空间使用情况的交互式报告。
在 Linux 上安装 ncdu
在 Linux 上,您可以从您的软件仓库安装 ncdu
。例如,在 Fedora 或 CentOS 上
$ sudo dnf install ncdu
在 BSD 上,您可以使用 pkgsrc。
在 macOS 上,您可以从 MacPorts 或 HomeBrew 安装。
或者,您可以从源代码编译 ncdu。
使用 ncdu
ncdu
的界面使用了 ncurses 库,它将您的终端窗口变成一个基本的图形应用程序,这样您就可以使用箭头键来导航可视化菜单。

CC BY-SA Seth Kenlon
这是 ncdu
的主要吸引力之一,也是它与原始 du
命令的区别所在。
要获取目录的完整列表,请启动 ncdu
。它默认指向当前目录。
$ ncdu
ncdu 1.16 ~ Use the arrow keys to navigate, press ? for help
--- /home/tux -----------------------------------------------
22.1 GiB [##################] /.var
19.0 GiB [############### ] /Iso
10.0 GiB [######## ] /.local
7.9 GiB [###### ] /.cache
3.8 GiB [### ] /Downloads
3.6 GiB [## ] /.mail
2.9 GiB [## ] /Code
2.8 GiB [## ] /Documents
2.3 GiB [# ] /Videos
[...]
列表首先显示最大的目录(在本例中,是 ~/.var
目录,其中充满了大量的 flatpak)。
使用键盘上的箭头键,您可以浏览列表,深入到目录中,以便更好地了解是什么占用了最多的空间。
获取特定目录的大小
您可以通过在启动 ncdu
时提供文件夹的路径,在任意目录上运行它
$ ncdu ~/chromiumos
排除目录
默认情况下,ncdu
包括它可以包含的所有内容,包括符号链接和伪文件系统,如 procfs 和 sysfs。您可以
使用 --exclude-kernfs
排除这些。
您可以使用 --exclude 选项排除任意文件和目录,后跟要匹配的模式。
$ ncdu --exclude ".var"
19.0 GiB [##################] /Iso
10.0 GiB [######### ] /.local
7.9 GiB [####### ] /.cache
3.8 GiB [### ] /Downloads
[...]
或者,您可以在文件中列出要排除的文件和目录,并使用 --exclude-from
选项引用该文件
$ ncdu --exclude-from myexcludes.txt /home/tux
10.0 GiB [######### ] /.local
7.9 GiB [####### ] /.cache
3.8 GiB [### ] /Downloads
[...]
颜色方案
您可以使用 --color dark
选项为 ncdu 添加一些颜色。

CC BY-SA Seth Kenlon
包括符号链接
ncdu
输出字面上处理符号链接,这意味着指向 9 GB 文件的符号链接仅占用 40 字节。
$ ncdu ~/Iso
9.3 GiB [##################] CentOS-Stream-8-x86_64-20210427-dvd1.iso
@ 0.0 B [ ] fake.iso
您可以使用 --follow-symlinks
选项强制 ncdu 跟随符号链接
$ ncdu --follow-symlinks ~/Iso
9.3 GiB [##################] fake.iso
9.3 GiB [##################] CentOS-Stream-8-x86_64-20210427-dvd1.iso
磁盘使用情况
磁盘空间耗尽可不好玩,因此监控磁盘使用情况非常重要。ncdu
命令使其变得简单和交互式。下次当您好奇您的 PC 上存储了什么,或者只是想以一种新的方式探索您的文件系统时,请尝试 ncdu
。
3 条评论