云网牛站
所在位置:首页 > Linux命令 > 教你在Linux系统中使用du命令,包括用du与其他命令结合使用

教你在Linux系统中使用du命令,包括用du与其他命令结合使用

2019-08-26 21:26:08作者:令华稿源:云网牛站

本文教你在Linux操作系统中使用du命令,包括用du与管道的其他命令结合使用的方法。du命令是“disk usage”的缩写,报告给定文件或目录使用的估计磁盘空间量,它对于查找占用大量磁盘空间的文件和目录非常有用。

教你在Linux系统中使用du命令,包括用du与其他命令结合使用

 

使用du命令的方法

du命令的一般语法如下:

du [OPTIONS]... FILE...

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

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

$ du ~/Documents

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

$ du ~/Documents ~/Pictures ~/.zshrc

如果你对没有权限的文件或目录运行du,则会出现类似“du: cannot read directory”的提示,在这种情况下,你需要在命令前加上sudo,参考在Ubuntu系统上为用户授予和删除sudo权限的方法

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

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

$ du -a ~/Documents

通常,你希望以可读的格式仅显示给定目录占用的空间,为此,请使用-h选项。

例如,要获取/var/lib及其所有子目录的总大小,请运行以下命令:

$ sudo du -h /var

我们使用的是sudo,因为/var/lib目录中的大多数文件和目录都归root用户所有,并且普通用户无法读取,输出看起来像这样:

教你在Linux系统中使用du命令,包括用du与其他命令结合使用

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

$ sudo du -sh /var

输入如下:

2.9G /var

-c选项使du报告总计,当你想要获得两个或更多目录的组合大小时,这非常有用:

$ sudo du -csh /var/log /var/lib

教你在Linux系统中使用du命令,包括用du与其他命令结合使用

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

$ sudo du -h --max-depth=1 /var/lib

教你在Linux系统中使用du命令,包括用du与其他命令结合使用

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

$ sudo du -sh --apparent-size /var/lib

返回信息:

2.9G /var/lib

du还允许使用shell模式,例如,要在主目录中获取以“Do”开头的所有目录的大小,你将运行:

$ sudo du -csh ~/Do*

返回信息:

102M /home/ywnz/Documents

358M /home/ywnz/Downloads

460M total

参考:使用ncdu、tin-summer、dust、diskus、duu来替代du命令工作

 

使用du与其他命令

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

例如,要打印/var目录中的5个最大目录,你可以将du的输出传递给sort命令,以按其大小对目录进行排序,然后将输出传递给head命令,该命令将仅打印前5个目录:

$ sudo du -h /var/ | sort -rh | head -5

教你在Linux系统中使用du命令,包括用du与其他命令结合使用

 

结论

阅读了以上内容,你应该很好地理解如何使用du命令。它和df命令不同,du命令可以估算给定文件或目录使用的磁盘空间。你可以在终端中输入man du命令来查看所有可用的du命令选项。

 

相关主题

Linux df命令示例

Linux命令子频道
精选文章
热门文章