Unixディレクトリ内のファイルを判読可能なサイズ順に並べ替えて表示するにはどうすればよいですか。
私は試した
du -h | sort -V -k 1
しかしうまくいかないようです。
ls(1)
/sort
:
-S sort by file size
$ 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
あなたが適切なsort
バージョンを持っているなら、あなたは単に使うことができます:
du -h | sort -rh
私の
$ sort --version
sort (GNU coreutils) 8.12
du -ha | sort -h
du
:ファイルのディスク使用量を見積もります。
-h : for human
-a : all files
sort
:テキスト行をソートします。
-h : for human
詳しくはman du; man sort
をご覧ください。それは私にとってはUbuntuのV15上で動作します。
私にとってls -S
はOSのオプションではありませんでした。以下がうまくいった:ls -l | sort -k 5nr
それらの "キー"はソートするカラムを指定することでした(それを "キー")。上記では-k 5nr
を指定しています。意味ソートは5番目の列で、サイズ(5)は降順(n)で数値(n)として評価されます
詳細については ソートドキュメント を参照してください。
私はこれが私のために働くようになった:
ls -l | sort -g -k 5 -r
どれが(私はちょうど考え出した)は同じです:
ls -lS
ls -S
とは異なり、これはスパースファイルを適切に処理します。
ls -lsh | sort -n | sed 's/^[0-9 ]* //'