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


48

unixディレクトリ内のファイルを人間が読めるサイズで最大から最小に並べ替えて表示するにはどうすればよいですか?

私は試した

du -h | sort -V -k 1 

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


サブディレクトリのサイズも出力に表示されることを期待しているかどうか、またファイルの見かけのサイズまたはディスクで使用する実際のサイズを探しているかどうかを明確にしてください。
jlliagre

回答:



33
$ 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

16

適切なsortバージョンを使用している場合は、単に次を使用できます。

du -h | sort -rh

私のは

$ sort --version
sort (GNU coreutils) 8.12

4

ls -S私にとってOSのオプションではありませんでした。次のように機能しました。
ls -l | sort -k 5nr
「キー」は、ソートする列を指定することでした(取得、「キー」)。上記では、サイズ(5)が降順(n)の数値(n)として評価される5番目の列のソートの-k 5nr意味を指定しています

詳細については、参照ソートのドキュメント


4

du -ha | sort -h

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

-h : for human
-a : all files

sort :テキストの行を並べ替えます。

-h : for human

man du; man sort多くのための。私にとってはubuntu v15で動作します。


1

私はこれを私のために働かせました:

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

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

ls -lS

0

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

ls -lsh | sort -n | sed 's/^[0-9 ]* //'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.