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

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

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

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

du 命令单位

du命令默认使用千字节的单位打印文件目录的大小。但是如果你需要指定du命令打印大小的单位可以使用选项--block-size指定。

也可以使用一些du命令预定义的单位选项,例如选项-m以兆字节打印文件目录大小,也就是单位M。

du命令的--block-size选项可以接受的单位可以是任意大小的数值和单位组成的值包括M,G,T等。

例如命令du -csh --block-size=500M ~/Downloads使用500M的大小作为单位,du命令将会文件目录大小除以500M打印大小。

du -csh --block-size=1G ~/Downloads
du -csh --block-size=500M ~/Downloads

du 命令自动选择大小单位

通常在很多情况下,我们只需要使用du命令的-h选项就足够应付日常的使用。

du命令的-h选项会自动根据文件大小选择合适的大小单位打印目录文件夹的大小。

例如命令sudo du -h /var打印/var/lib文件目录大小,大文件与目录将会以1K,234M,2G的方式打印。

sudo du -h /var
4.0K	/var/log/sysstat
.......
46G	/var