du命令是disk usage的缩写,打印文件或目录使用的磁盘空间量估算。这对于查找占用大量磁盘空间的文件和目录非常有用。

du命令的默认行为是打印文件目录占用的磁盘空间,而不是真是的文件大小。要打印文件目录真实大小,请使用du命令--apparent-size选项。

要理解这一点请先阅读我们教程什么是inode。然后理解这句话:如果磁盘的分区的块大小4096字节,那么即使文件没有4096字节的大小也会占用一个块的大小。

什么是inode | myfreax
文件储存在硬盘上,硬盘的最小存储单位叫做扇区Sector
什么是inode

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