使用 ncdu 检查 Linux 中的可用磁盘空间

使用 ncdu Linux 命令获取关于磁盘使用情况的交互式报告。
57 位读者喜欢这篇文章。
Check disk usage

CC BY-SA Seth Kenlon

计算机用户往往会在多年内积累大量数据,无论是重要的个人项目、数码照片、视频、音乐还是代码仓库。虽然现在的硬盘往往都很大,但有时您需要退后一步,评估一下您实际在驱动器上存储了什么。经典的 Linux 命令 dfdu 是快速了解驱动器上内容的方式,它们提供了可靠的报告,易于解析和处理。这对于脚本编写和处理非常有用,但人脑并不总是能很好地处理数百行原始数据。考虑到这一点,ncdu 命令旨在提供关于您硬盘上空间使用情况的交互式报告。

在 Linux 上安装 ncdu

在 Linux 上,您可以从您的软件仓库安装 ncdu。例如,在 Fedora 或 CentOS 上

$ sudo dnf install ncdu

在 BSD 上,您可以使用 pkgsrc

在 macOS 上,您可以从 MacPortsHomeBrew 安装。

或者,您可以从源代码编译 ncdu

使用 ncdu

ncdu 的界面使用了 ncurses 库,它将您的终端窗口变成一个基本的图形应用程序,这样您就可以使用箭头键来导航可视化菜单。

ncdu interface

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 添加一些颜色。

ncdu color scheme

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

接下来阅读什么
标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,经常同时进行。

3 条评论

感谢这篇文章。我刚刚在 Linux Mint 上安装了“ncdu”。我会试一试。

天啊,我一直都在用“du”,但我不知道“ncdu”。它看起来真不错,感谢这篇文章!

我也是,Miguel!我真的很喜欢 ncdu,它是我告诉别人时,人们会立刻喜欢上的隐藏瑰宝之一。我不知道为什么我花了这么长时间才写一篇关于它的文章!

Filelight 和类似的工具也没什么问题,但终端中有一个漂亮的简单交互式应用程序就是有那么点特别...

回复 ,作者:miguendes

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.