du命令是disk usage
的缩写,打印文件或目录使用的磁盘空间量估算。这对于查找占用大量磁盘空间的文件和目录非常有用。
du
命令的默认行为是打印文件目录占用的磁盘空间,而不是真是的文件大小。要打印文件目录真实大小,请使用du
命令--apparent-size
选项。
要理解这一点请先阅读我们教程什么是inode。然后理解这句话:如果磁盘的分区的块大小4096字节,那么即使文件没有4096字节的大小也会占用一个块的大小。
du 命令查看目录文件夹大小
要打印指定目录的总大小,而不打印子目录和文件的大小,请使用du
命令-s
选项。
例如命令sudo du -sh /var
命令仅打印/var目录的大小,其子目录与文件将不会打印。
du
命令默认使用千字节的单位打印文件目录的大小,在这里我们组合使用du
命令的-h
选项自动根据文件大小选择合适的大小单位打印目录文件夹的大小。
sudo du -sh /var
46G /var
du 命令统计多个目录总大小
du
命令的-c
选项可以合并多个目录的总大小,当您要获取两个或多个目录的合并后的总大小时,此选项非常有用。
例如命令sudo du -csh /var/log /var/lib
将会打印/var/lib
与/var/log
两个目录大小和合并后的大小。
你可能看到du
命令还组合使用-s
选项,因为仅需要打印指定目录大小,所以不需要打印子目录文件大小,-h
表示以友好的阅读格式打印总大小。
sudo du -csh /var/log /var/lib
837M /var/log
3.1G /var/lib
3.9G total
du 命令使用通配符指定多个文件目录
du
命令还允许您使用通配符模式,同时指定多个文件目录统计大小。这在统计指定文件类型,匹配文件目录名称时非常有用。
例如命令sudo du -csh ~/Do*
打印家目录中以Do
开头的所有目录的大小。通常是/home/myfreax/Documents
与/home/linux/Downloads
目录的大小。
sudo du -csh ~/Do*
4.0K /home/myfreax/Documents
2.0G /home/myfreax/Downloads
2.0G total
du 命令指定目录深度级别
默认情况下,du命令将会递归遍历指定目录的所有子目录,然后以千字节打印文件目录的大小。
如果要打印指定目录深度级别的目录大小,请使用du
命令的--max-depth
选项并指定子目录级别。
例如命令sudo du -h --max-depth=1 /var/lib
仅打印/var/lib
下第一级目录的总大小。
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