[小ネタ][シェル芸]ディスク使用量が一番多いディレクトリを探す 2


nullpopopo140文字に収まるワンライナーシリーズ、まだまだ続きます。まずは以下のワンライナーを見てみましょう。

[ (っ´∀`)っ@友の会 ~]$ [ $(pwd) = $(cd -) ]&& du -sh `pwd`||cd $(sudo find `pwd` -type d|xargs du -sk|sort -n|tail -n 2|head -n 1|awk '{print $NF}')

カレントディレクトリと直前にいたディレクトリが同じであれば、カレントディレクトリでduコマンドを実行します。カレントディレクトリと直前にいたディレクトリが違えば、直下の一番容量を食っているディレクトリへcdします。これを何度も繰り返せば、どのディレクトリが一番容量を食っているかが一目瞭然です。それではやってみましょう。

[(っ´∀`)っ@localhost /]$ [ $(pwd) = $(cd -) ]&& du -sh `pwd`||cd $(sudo find `pwd` -type d|xargs du -sk|sort -n|tail -n 2|head -n 1|awk '{print $NF}')
[(っ´∀`)っ@localhost usr]$ [ $(pwd) = $(cd -) ]&& du -sh `pwd`||cd $(sudo find `pwd` -type d|xargs du -sk|sort -n|tail -n 2|head -n 1|awk '{print $NF}')
[(っ´∀`)っ@localhost share]$ [ $(pwd) = $(cd -) ]&& du -sh `pwd`||cd $(sudo find `pwd` -type d|xargs du -sk|sort -n|tail -n 2|head -n 1|awk '{print $NF}')
[(っ´∀`)っ@localhost locale]$ [ $(pwd) = $(cd -) ]&& du -sh `pwd`||cd $(sudo find `pwd` -type d|xargs du -sk|sort -n|tail -n 2|head -n 1|awk '{print $NF}')
[(っ´∀`)っ@localhost ru]$ [ $(pwd) = $(cd -) ]&& du -sh `pwd`||cd $(sudo find `pwd` -type d|xargs du -sk|sort -n|tail -n 2|head -n 1|awk '{print $NF}')
[(っ´∀`)っ@localhost LC_MESSAGES]$ [ $(pwd) = $(cd -) ]&& du -sh `pwd`||cd $(sudo find `pwd` -type d|xargs du -sk|sort -n|tail -n 2|head -n 1|awk '{print $NF}')
[(っ´∀`)っ@localhost LC_MESSAGES]$ [ $(pwd) = $(cd -) ]&& du -sh `pwd`||cd $(sudo find `pwd` -type d|xargs du -sk|sort -n|tail -n 2|head -n 1|awk '{print $NF}')
10M /usr/share/locale/ru/LC_MESSAGES

このように、一番容量を食っているディレクトリまでcdして最後にはディレクトリが消費しているディスク容量を表示することができました。このワンライナーをコピペ連打すると、ディスク容量が逼迫しても慌てず調査できるでしょう。ね、簡単でしょう?