Linux中的Du Command

du 命令,“磁盘使用率”的缩写,报告给定文件或目录使用的估计磁盘空间量。 这对于查找占用大量磁盘空间的文件和目录非常有用。

如何使用 du 命令#

的一般语法 du 命令如下:

du [OPTIONS]... FILE...

如果给定 FILE 是一个目录, du 将总结该目录中每个文件和子目录的磁盘使用情况。 如果不 FILE 被指定 du 将报告当前工作目录的磁盘使用情况。

没有任何选择地执行时 du 显示给定文件或目录及其每个子目录的磁盘使用情况(以字节为单位)。

du ~/Documents 

您还可以将多个文件和目录传递到 du 命令作为参数:

du ~/Documents ~/Pictures ~/.zshrc

如果你跑 du 在您没有权限的文件或目录上,将显示类似“ du:无法读取目录”的信息。 在这种情况下,您需要在命令前加上 sudo

du 有很多选项,我们将仅概述最常用的选项。

-a 选项告诉 du 报告目录中每个文件的磁盘空间使用情况。

du -a ~/Documents 

通常,您只想以人类可读的格式显示给定目录占用的空间。 为此,请使用 -h 选项。

例如,要获取 /var/lib 及其所有子目录,您将运行以下命令:

sudo du -h /var

我们正在使用 sudo 因为其中大多数文件和目录 /var/lib 该目录归root用户所有,普通用户不可读。 输出将如下所示:

...
4.0K	/var/lib/apt/mirrors/partial
8.0K	/var/lib/apt/mirrors
205M	/var/lib/apt
2.9G	/var/lib/

要仅报告指定目录的总大小,而不报告子目录的总大小,请使用 -s 选项:

sudo du -sh /var
2.9G	/var

-c 选项告诉 du 报告总计。 当您要获取两个或多个目录的合并大小时,此功能很有用。

sudo du -csh /var/log /var/lib
1.2G	/var/log
2.9G	/var/lib
4.1G	total

如果要显示n级子目录的磁盘使用情况,请使用 --max-depth 选项并指定子目录级别。 例如,要获取有关一级目录的报告,请使用:

sudo du -h --max-depth=1 /var/lib
...
544K	/var/lib/usbutils
4.0K	/var/lib/acpi-support
205M	/var/lib/apt
2.9G	/var/lib

的默认行为 du 实用程序是重新获得目录或文件使用的磁盘空间。 要查找文件的外观大小,请使用 --apparent-size 开关。 文件的“表观大小”是文件中实际有多少数据。

sudo du -sh --apparent-size /var/lib
2.9G	/var/lib

du 还允许您使用外壳模式。 例如,要获取主目录中以“ Do”开头的所有目录的大小,请运行:

sudo du -csh ~/Do*
102M	/home/linuxize/Documents
358M	/home/linuxize/Downloads
460M	total

使用 du 与其他命令

du 该命令可以与其他带有管道的命令结合使用。

例如,要在 /var 您将传递输出的目录 dusort 命令按目录大小对目录进行排序,然后将输出通过管道传递给 head 该命令将仅显示前5个目录:

sudo du -h /var/ | sort -rh | head -5
4.6G	/var/
2.9G	/var/lib
2.6G	/var/lib/snapd
1.7G	/var/lib/snapd/snaps
1.2G	/var/log/journal/af8ce1d394b844fea8c19ea5c6a9bd09

结论#

到目前为止,您应该对如何使用 du 命令。

不像 df 打印有关已挂载文件系统的磁盘使用情况的信息, du 命令可以估计给定文件或目录使用的磁盘空间。

您可以查看所有可用的 du 通过键入命令选项 man du 在您的终端中。

如果您有任何疑问或反馈,请在下面发表评论。

杜终端磁盘

Sidebar