我通常运行下面的命令来检查每个目录的大小。
du -sBM /* | sort -nr | head -n20
然而,在这里指定块大小“M”将为所有内容赋予“M”中的值。问题是,一旦低于 1M,所有数据都会报告为 1M。所以这个解决方案对我来说并不是最佳的。如果我运行以下命令:
du -sh /* | sort -nr | head -n20
我得到了我真正想要的输出(块大小为 G、M 和 K),但它全部乱序。例如:
618M /var
387M /lib
336M /home
260K /root
184K /dev
102M /boot
32M /etc
32K /tmp
27M /lib64
24K /opt
16K /lost+found
14M /sbin
8.0K /mnt
7.4M /bin
4.0K /srv
4.0K /net
4.0K /misc
4.0K /media
4.0K /cgroup
2.2G /usr
我把 M 放在 G 上面,K 放在 M 上面,依此类推。我希望我的输出看起来像这样:
2.2G /usr
618M /var
387M /lib
336M /home
102M /boot
32M /etc
27M /lib64
14M /sbin
260K /root
184K /dev
32K /tmp
24K /opt
16K /lost+found
8.0K /mnt
7.4M /bin
4.0K /srv
4.0K /net
4.0K /misc
4.0K /media
4.0K /cgroup
这里是否有一句台词可以做我想要的事情,或者脚本是否是更好的解决方案?
答案1
使用sort
的-h
选项代替-n
:
du -sh /* | sort -hr | head -n20