Linux 中的 du 命令及示例 - Linux 命令行教程
在任何操作系统上,硬盘上的文件都会占用一定的空间。具体来说,在 Linux 中,您可以使用 du 命令在命令行终端中查看这些文件占用了多少空间。 du 命令(该名称是“磁盘使用情况”的缩写),顾名思义,将在其输出中简单地显示指定文件或目录正在使用的磁盘空间量。
例如,如果您想知道为什么有些文件消耗的磁盘空间比应有的多,您可以使用 du 命令来确定是哪些文件造成的。在本教程中,我们将讨论 du 命令的典型应用及其一些选项,以帮助您充分利用 Linux 系统的硬盘空间。
在本教程中您将学习:
如何在 Linux 上使用 du 命令
常用选项
Linux 中的 du 命令基本示例
我们可以对文件和目录使用 du 命令。但对于目录来说,运行 du 命令将简单地显示其中每个文件和子目录的磁盘使用情况。如果您单独运行du命令,没有任何附加选项或指定文件,它将显示当前工作目录的磁盘使用情况。
$ du /etc 8 /etc/cracklib 12 /etc/vim 12 /etc/cron.monthly [...] total: 11312
我们还可以使用du命令同时查看多个文件或目录的磁盘使用情况,而不是只查看一个。
$ du /etc /tmp
在上面的示例中,我们展示了 du 命令如何显示给定目录中每个文件或子目录的磁盘使用情况。但是我们可以更进一步,使用
-a
(“all”的缩写)命令选项,显示整个指定文件路径中每个文件的磁盘使用情况,而不仅仅是尾部目录。$ du -a /home/user
我们可以利用 -h 选项以人类可读的格式显示文件或目录的磁盘使用情况。
$ du -h /var
注意
您始终可以使用 man 命令来阅读有关 touch 命令及其官方文档的更多信息。单击上一个链接可查看如何打开 Linux 系统上任何命令的手册页。
高级用法
du 命令非常简单,但正如您在本文的示例部分中所观察到的,它包含很多选项。其中许多选项都不太引人注目,甚至一些经验丰富的系统管理员也可能不知道它们。然而,它们绝对可以在各种情况下派上用场。在本教程的这一部分中,我们将向您展示 du 命令的一些鲜为人知的选项,但我们认为这些选项很有用。
Linux 高级示例中的 du 命令
在上面的示例中,我们介绍了默认情况下 du 命令如何显示目录及其中每个子目录的磁盘使用情况。如果存在需要独占查看某个目录的磁盘空间的情况,我们可以使用
-s
命令行选项。此选项将从其输出中完全忽略您在命令行中指定的目录内的任何子目录。$ du -s Downloads
我们已经展示了如何使用 du 命令同时显示多个文件或目录的磁盘使用情况。但是,当存在许多文件和包含其他文件的子目录时,总结磁盘使用情况可能会变得非常乏味或具有挑战性。在这种情况下,我们可以简单地使用
-c
选项。-c
选项结合了多个目录的大小并计算总数,因此您不必执行任何繁重的工作。$ du -c /etc /tmp
我们还可以使用du命令来显示文件或目录中存储的绝对数据量,因为默认情况下,du命令显示实际存储的数据量。使用硬盘中的空间。我们可以通过使用
--apparent-size
来实现这一点。$ du --apparent-size /home/user 12 /home/linuxconfig/.config/evolution/sources 16 /home/linuxconfig/.config/evolution 152 /home/linuxconfig/.config [...] total: 45955
您还可以使用
--max-depth
选项指定 du 命令在目录中进入的深度。例如,我们将使用下面的语法来显示Downloads
目录中一个子目录的磁盘使用情况,同时忽略其子目录。$ du --max-depth=2 Downloads
我们还可以使用带有
--exclude
选项的 du 命令从其输出中排除指定的文件和目录。我们可以通过将文件和目录名称的模式作为 du 命令的参数传递来完成此操作。例如,我们可以将./.
名称模式传递给 du 命令来排除主目录中的所有隐藏文件,因为所有隐藏文件名都以句点开头。$ du -ha --exclude=./.*
我们还可以指定多个排除模式,而不是像上一个示例中那样仅指定一个排除模式。这可以通过在命令行上以相同语法重复
--exclude
选项来实现。$ du -ha --exclude=./.* --exclude=./P*
使用 du 命令排除文件和目录的另一种方法是使用
-x
或--exclude-from
命令行选项。此选项与上一示例中的选项不同,它采用文本文件的名称作为参数,并对其中写入的模式运行 du 命令。例如,让我们创建一个名为exclusions.txt
的文本文件并添加我们的模式。然后我们将其传递给 du 命令。$ du -ha --exclude-from=exclusions.txt
结束语
在本教程中,我们全面了解了 Linux 上的 du 命令,对于喜欢频繁监控 Linux 上的文件和目录的磁盘使用情况的用户和管理员来说,掌握该命令至关重要。如需进一步阅读,请查看 df 命令,它很好地补充了 du。