检查 Linux 中的磁盘使用情况

duncdu 命令提供了相同信息的两种不同视图,使您可以轻松跟踪计算机上存储的内容。
3 位读者喜欢这篇文章。
Data stack in blue

无论您拥有多少存储空间,了解您的文件使用了多少磁盘空间都是一个重要的考虑因素。我的笔记本电脑有一个相对较小的 250GB NVME 驱动器。大多数时候这都没问题,但几年前我开始探索在 Linux 上玩游戏。安装 Steam 和一些游戏可能会使存储管理变得更加关键。

du 命令

检查磁盘驱动器上剩余存储空间的最简单方法是 du 命令。此命令行实用程序估计文件空间使用情况。与所有 Linux 工具一样,du 非常强大,但了解如何针对您的特定需求使用它会很有帮助。我总是查阅任何实用程序的 man 手册页。这个特定的工具具有多个开关,可为您提供文件存储的最佳快照以及它们在系统上占用的空间。

du 命令有很多选项。以下是一些常用选项

  • -a - 写入所有文件(而不仅仅是目录)的计数
  • --apparent-size - 打印显示大小而不是磁盘使用量
  • -h - 人类可读的格式
  • -b - 字节
  • -c - 总计
  • -k - 块大小
  • -m - 以兆字节为单位的大小

请务必查看 du 手册页以获取完整列表。

显示所有文件

您可以选择的第一个选项是 du -a。它提供了系统上所有文件及其存储目录的读数。此命令让我知道我的主目录中存储了 11555168 字节。使用 du -a 可以快速递归地查看我的存储系统。如果我想要一个更有意义的数字,并且想要深入到目录中以查看系统上哪些文件很大,该怎么办?

我认为我的 Downloads 目录中有些大文件,所以我输入 du -a /home/don/Downloads 以仔细查看该 Downloads 目录。

$ du -a ~/Downloads
4923    ./UNIX_Driver_5-0/UNIX Driver 50
4923    ./UNIX_Driver_5-0
20     ./epel-release-latest-9.noarch.rpm
12    ./rpmfusion-free-release-9.noarch.rpm
2256    ./PZO9297 000 Cover.pdf
8    ./pc.md
2644    ./geckodriver-v0.31.0-linux64.tar.gz
466468  

最左边的数字是以字节为单位的文件大小。我想要一些对我更有帮助的东西,所以我将人类可读格式的开关添加到我的 du -h /home/don/Downloads 命令中。结果是 4.8 G(千兆字节),这对我来说是一个更有用的数字格式。

$ du -ah ~/Downloads
4.9M    ./UNIX_Driver_5-0/UNIX Driver 50
4.9M    ./UNIX_Driver_5-0
20K    ./epel-release-latest-9.noarch.rpm
12K    ./rpmfusion-free-release-9.noarch.rpm
2.2M    ./PZO9297 000 Cover.pdf
8.0K    ./pc.md
2.6M    ./geckodriver-v0.31.0-linux64.tar.gz
456M    .

与大多数 Linux 命令一样,您可以组合选项。要以人类可读的格式查看您的 Downloads 目录,请使用 du -ah ~/Downloads 命令。

[另请阅读: 5 个用于检查 Linux 中可用磁盘空间的 Linux 命令 ]

总计

-c 选项在最后一行提供磁盘使用情况的总计。我可以使用 du -ch /home/don 显示我的主目录中的每个文件和目录。信息很多,我真的只想要末尾的内容,所以我将磁盘使用情况命令管道传输到 tail。该命令是 du -ch /home/don | tail

pipe the du command output into tail

(Don Watkins, CC BY-SA 4.0)

ncdu 命令

对于对驱动器上存储内容感兴趣的 Linux 用户,另一个选择是 ncdu 命令。该命令代表 NCurses Disk Usage。根据您的 Linux 发行版,您可能需要下载并安装它。

在 Linux Mint、Elementary、Pop_OS! 和其他基于 Debian 的发行版上

$ sudo apt install ncdu

在 Fedora、Mageia 和 CentOS 上

$ sudo dnf install ncdu

在 Arch、Manjaro 和类似发行版上

$ sudo pacman -S ncdu

安装后,您可以使用 ncdu 分析您的文件系统。以下是在我的主目录中发出 ncdu 后的示例输出。ncdu 的 man 手册页指出“ncdu (NCurses Disk Usage) 是众所周知的 du 的基于 curses 的版本,并提供了一种快速查看哪些目录正在使用您的磁盘空间的方法。”

du command home directory output

(Don Watkins, CC BY-SA 4.0)

我可以使用箭头键上下导航,然后按 Enter 键进入目录。一个有趣的注意事项是,du 报告我的主目录中的总磁盘使用量为 12GB,而 ncdu 报告我的总磁盘使用量为 11GB。您可以在 ncdu 手册页中找到更多信息。

您可以通过将 ncdu 指向特定目录来浏览该目录。例如,ncdu /home/don/Downloads

ncdu command output

(Don Watkins, CC BY-SA 4.0)

? 键显示帮助菜单

ncdu help

(Don Watkins, CC BY-SA 4.0)

总结

duncdu 命令提供了相同信息的两种不同视图,使您可以轻松跟踪计算机上存储的内容。

如果您不习惯终端,或者只是想寻找另一种查看此类信息的方式,请查看 GNOME 磁盘使用分析器。如果您的系统上尚未安装,您可以轻松安装和使用它。检查您的发行版中是否有 baobab,如果您想尝试,请安装它。

接下来阅读什么
标签
User profile image.
教育家、企业家、开源倡导者、终身学习者、Python 教师。教育心理学硕士,教育领导学硕士,Linux 系统管理员。

3 条评论

您的第二个示例没有显示正确的命令。它应该是

du -ah ~/Downloads

我从不使用没有 -h 选项的 du。否则,结果太晦涩难懂了。

-h 标志对我来说是新的。我喜欢它。尝试将此别名添加到您的 .bashrc 文件
alias du='du -h'

我学习了 -s 标志用于摘要,而不是 -c 标志。更容易记住。

我使用的一些 du 命令

du -sh *
总结当前目录中目录和文件的磁盘使用情况。

du -sh * | sort -n
对当前目录中目录或文件的大小进行排序。
-n 基于数值而不是字母数字排序。 -rn 反转排序顺序。

du -sh * | sort -n | tail -5
显示当前目录中最大的 5 个目录或文件。
这只是当前目录中顶层文件和目录的摘要。

find . -type f | xargs -d '\n' du -sh * | sort -n | tail -5
查找当前目录中最大的 5 个文件。
用于查找您未注意到的意外的大型文件很有用。
xargs 的 -d '\n' 参数告诉 xargs 在换行符处断开参数。它可以避免文件名中带有空格的问题。

du 是我 45 年前学到的最早的 UNIX 命令之一。经典之作,经久不衰。

© . All rights reserved.