本文教你在Linux操作系统中使用du命令,包括用du与管道的其他命令结合使用的方法。du命令是“disk usage”的缩写,报告给定文件或目录使用的估计磁盘空间量,它对于查找占用大量磁盘空间的文件和目录非常有用。
使用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用户所有,并且普通用户无法读取,输出看起来像这样:
要仅报告指定目录的总大小,而不报告子目录的总大小,请使用-s选项: $ sudo du -sh /var 输入如下: 2.9G /var -c选项使du报告总计,当你想要获得两个或更多目录的组合大小时,这非常有用: $ sudo du -csh /var/log /var/lib
如果要显示n级子目录的磁盘使用情况,请使用--max-depth选项并指定子目录级别,例如,要获取有关你将使用的第一级目录的报告: $ sudo du -h --max-depth=1 /var/lib
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
结论 阅读了以上内容,你应该很好地理解如何使用du命令。它和df命令不同,du命令可以估算给定文件或目录使用的磁盘空间。你可以在终端中输入man du命令来查看所有可用的du命令选项。
相关主题 |