
私は通常、次のコマンドを実行して各ディレクトリのサイズを確認します。
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