web-dev-qa-db-ja.com

ディレクトリ内のすべてのファイルをサイズで並べ替えるにはどうすればよいですか。

Unixディレクトリ内のファイルを判読可能なサイズ順に並べ替えて表示するにはどうすればよいですか。

私は試した

du -h | sort -V -k 1 

しかしうまくいかないようです。

46
user46976

ls(1)/sort

-S     sort by file size
51
Hello71
$ ls -lhS

-l     use a long listing format
-h     with -l, print sizes in human readable format (e.g., 1K 234M 2G)
-S     sort by file size
32
kev

あなたが適切なsortバージョンを持っているなら、あなたは単に使うことができます:

du -h | sort -rh

私の

$ sort --version
sort (GNU coreutils) 8.12
14
ztank1013

du -ha | sort -h

du:ファイルのディスク使用量を見積もります。

-h : for human
-a : all files

sort:テキスト行をソートします。

-h : for human

詳しくはman du; man sortをご覧ください。それは私にとってはUbuntuのV15上で動作します。

4
Andrew_1510

私にとってls -SはOSのオプションではありませんでした。以下がうまくいった:
ls -l | sort -k 5nr
それらの "キー"はソートするカラムを指定することでした(それを "キー")。上記では-k 5nrを指定しています。意味ソートは5番目の列で、サイズ(5)は降順(n)で数値(n)として評価されます

詳細については ソートドキュメント を参照してください。

3
Alex

私はこれが私のために働くようになった:

ls -l | sort -g -k 5 -r

どれが(私はちょうど考え出した)は同じです:

ls -lS
1
Aaron

ls -Sとは異なり、これはスパースファイルを適切に処理します。

ls -lsh | sort -n | sed 's/^[0-9 ]* //'
0
jlliagre