Bagaimana saya bisa mengurutkan semua file berdasarkan ukuran dalam direktori?

48

Bagaimana saya bisa menampilkan file dalam direktori unix yang diurutkan berdasarkan ukurannya yang dapat dibaca manusia, dari yang terbesar ke yang terkecil?

Saya mencoba

du -h | sort -V -k 1 

tapi sepertinya tidak berhasil.

pengguna46976
sumber
Bisakah Anda mengklarifikasi jika Anda mengharapkan ukuran subdirektori muncul di output juga, dan juga jika Anda mencari ukuran file yang terlihat atau ukuran sebenarnya yang mereka gunakan pada disk?
jlliagre

Jawaban:

53

ls(1) /sort:

-S     sort by file size
Halo71
sumber
1
-Stidak lagi menjadi semacam argumen yang valid setidaknya di ubuntu. Jawaban di bawah ini oleh @alex bekerja untuk saya. Tautan jawabnya adalah superuser.com/a/990437/528836 .
Prasanna
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
kev
sumber
16

Jika Anda memiliki sortversi yang sesuai, Anda cukup menggunakan:

du -h | sort -rh

punya saya

$ sort --version
sort (GNU coreutils) 8.12
ztank1013
sumber
4

ls -Sbukan pilihan di OS bagi saya. Yang berikut ini berfungsi:
ls -l | sort -k 5nr
Mereka "kunci" adalah untuk menentukan kolom untuk mengurutkan (mendapatkannya, "kunci"). Di atas saya tentukan jenis-k 5nr arti pada kolom ke-5 yang ukuran (5) dievaluasi sebagai angka (n) dalam urutan menurun (n)

Referensi pengurutan dokumentasi untuk informasi lebih lanjut

Alex
sumber
4

du -ha | sort -h

du : perkirakan penggunaan disk file.

-h : for human
-a : all files

sort : urutkan baris teks.

-h : for human

man du; man sortuntuk lebih. Ini berfungsi untuk saya di ubuntu v15.

Andrew_1510
sumber
1

Saya mendapatkan ini untuk saya:

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

Yang (saya baru tahu) sama dengan:

ls -lS
Harun
sumber
0

Tidak seperti ls -Sini, ini akan menangani file yang jarang:

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