du命令是disk usage
的缩写,打印文件或目录使用的磁盘空间量估算。这对于查找占用大量磁盘空间的文件和目录非常有用。
du
命令的默认行为是打印文件目录占用的磁盘空间,而不是真是的文件大小。要打印文件目录真实大小,请使用du
命令--apparent-size
选项。
要理解这一点请先阅读我们教程什么是inode。然后理解这句话:如果磁盘的分区的块大小4096字节,那么即使文件没有4096字节的大小也会占用一个块的大小。
du 命令按大小排序打印
du
命令可以与接受标准输入的命令通过管道组合使用,来实现一些强大功能,比如对du
命令的标准输出按大小进行排序。
例如命令sudo du -h /var/ | sort -rh | head -5
打印/var
目录的前5大文件与目录,这样你就可以找指定目录的巨大的文件与目录,有点类似磁盘使用率管理器。
这里解释一下命令实现,du -h /var/
命令打印以友好阅读格式递归打印/var
目录文件大小。
然后du
命令的结果,也就是标准输出通过管道|
传递到sort
命令,sort命令的-r
选项反向排序du命令的结果,-h
按可读的数字大小进行排序。
最后将sort
命令的排序结果通过管道传递给head
命令打印前5行记录,经过sort命令排序后,最大文件目录排在前面,也就是前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