使用 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 命令使其变得简单且具有交互性。下次当您好奇您的电脑上存储了什么,或者只是想以一种新的方式探索您的文件系统时,请尝试 ncdu

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

3 条评论

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

天啊,我一直使用“du”,但我不知道“ncdu”。它看起来很棒,感谢这篇文章!

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

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

回复 作者 miguendes

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.