ディスク容量が不足しているときなどに、内訳を調べて容量を食いつぶしているディレクトリを調べ上げるのは簡単です。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$
見やすくなりました。


コメント