ディスク容量が不足しているときなどに、内訳を調べて容量を食いつぶしているディレクトリを調べ上げるのは簡単です。duコマンドを使います。
例によってlinuxカーネルソース一式を使って確認したいと思います。
省略のためheadしておきます。
takk~$ cd /usr/src/linux takk~$ du -sh * | head 20K COPYING 96K CREDITS 33M Documentation 9.9M GPATH 344M GRTAGS 179M GTAGS 4.0K Kbuild 4.0K Kconfig 332K MAINTAINERS 56K Makefile takk~$
単純にduコマンドを使うと、どれが一番容量を使っているのかすぐにわかりませんので、並び替えをします。
sortコマンドで並び替えができますが、数値によって並び替えをする場合は、sort -nオプションを使います。
takk~$ cd /usr/src/linux takk~$ du -sh * | sort -n | head 1.2M block 2.4M security 3.1M crypto 3.1M mm 3.1M scripts 3.5M lib 4.0K Kbuild 4.0K Kconfig 6.1M firmware 7.0M kernel
使用容量のランク付をするには、これだけでは不十分です。単位がM(メガ)とK(キロ)が混在しているからです。
du の-hオプションは人間に分かりやすく単位をつけてくれますが、ランキングの際は邪魔になるので取っ払います。
さらにsortに-rオプションを追加することで、降順にします。
takk~$ cd /usr/src/linux /usr/src/linux$ du -s * | sort -nr | head 384616 drivers 351508 GRTAGS 182644 GTAGS 137036 arch 37076 fs 33928 include 33172 Documentation 30896 sound 26872 net 11304 tools
ランク付けが終わった後は、今度は人間に分かりやすくするために、単位を追加したいです。
perlによる置換evalを使います。
/usr/src/linux$ du -s * | > sort -nr | > perl -pe 's/^(\d\d\d\d+)/sprintf("%1.1fK",$1 \/ 1024)/e' 375.6K drivers 343.3K GRTAGS 178.4K GTAGS 133.8K arch 36.2K fs 33.1K include 32.4K Documentation 30.2K sound 26.2K net 11.0K tools 9.8K GPATH 7.0K kernel 6.0K firmware 3.5K lib 3.1K mm 3.1K crypto 3.1K scripts 2.3K security 1.1K block 496 samples 356 virt 332 MAINTAINERS 248 ipc 192 init 96 CREDITS 56 Makefile 36 usr 28 certs 20 README 20 COPYING 8 REPORTING-BUGS 4 Kconfig 4 Kbuild /usr/src/linux$
さらに順位等加えて、段組してみます。
/usr/src/linux$ du -s * | > sort -nr | > perl -pe 's/^(\d\d\d\d+)/sprintf("%1.1fK",$1 \/ 1024)/e' | > nl | pr -t2 | expand -t8 1 375.6K drivers 18 2.3K security 2 343.3K GRTAGS 19 1.1K block 3 178.4K GTAGS 20 496 samples 4 133.8K arch 21 356 virt 5 36.2K fs 22 332 MAINTAINERS 6 33.1K include 23 248 ipc 7 32.4K Documentation 24 192 init 8 30.2K sound 25 96 CREDITS 9 26.2K net 26 56 Makefile 10 11.0K tools 27 36 usr 11 9.8K GPATH 28 28 certs 12 7.0K kernel 29 20 README 13 6.0K firmware 30 20 COPYING 14 3.5K lib 31 8 REPORTING-BUGS 15 3.1K mm 32 4 Kconfig 16 3.1K crypto 33 4 Kbuild 17 3.1K scripts /usr/src/linux$
見やすくなりました。
コメント