GNU/Linux >> Linux の 問題 >  >> Linux

du -h 出力をサイズでソートするにはどうすればよいですか

解決策 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

Linux
  1. Du出力をサイズで並べ替える方法は?

  2. リダイレクションの使い方を覚える方法は?

  3. Linux でファイルとディレクトリのサイズを確認するにはどうすればよいですか?

  1. ファイルをその場でソートする方法

  2. 最初に ls でドットファイルを表示するにはどうすればよいですか?

  3. ディスク io を監視するにはどうすればよいですか?

  1. Linuxですべてのファイルをサイズ別に一覧表示または並べ替える方法

  2. プロセスがps出力で異なる名前を持っているように見えるのはなぜですか?

  3. ps出力をプロセス開始時間でソートする方法は?