解決策 1:
2009 年 8 月にリリースされた GNU coreutils 7.5 以降、sort
-h
を許可します du -h
によって生成される種類の数値サフィックスを許可するパラメータ :
du -hs * | sort -h
-h
をサポートしていない並べ替えを使用している場合 、GNU Coreutils をインストールできます。例えば。古い Mac OS X の場合:
brew install coreutils
du -hs * | gsort -h
sort
から マニュアル:
-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)
解決策 2:
du | sort -nr | cut -f2- | xargs du -hs
解決策 3:
@Douglas Leeder、もう1つの回答:別のツールを使用して、 du -h からの人間が読める出力をソートします。 Perl のように!
du -h | perl -e 'sub h{%h=(K=>10,M=>20,G=>30);($n,$u)=shift=~/([0-9.]+)(\D)/;
return $n*2**$h{$u}}print sort{h($b)<=>h($a)}<>;'
表示に合わせて 2 行に分割します。このように使用することも、ワンライナーにすることもできます。どちらの方法でも機能します。
出力:
4.5M .
3.7M ./colors
372K ./plugin
128K ./autoload
100K ./doc
100K ./syntax
編集: PerlMonks で数ラウンドのゴルフを行った後、最終結果は次のようになります:
perl -e'%h=map{/.\s/;99**(ord$&&7)-$`,$_}`du -h`;[email protected]{sort%h}'
解決策 4:
私が使用している ncdu という非常に便利なツールがあります。これは、厄介なディスク使用率の高いフォルダーやファイルを見つけて削除するように設計されています。コンソール ベースで、高速かつ軽量で、すべての主要なディストリビューションにパッケージがあります。
解決策 5:
du -k * | sort -nr | cut -f2 | xargs -d '\n' du -sh