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.


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:



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

Jika Anda memiliki sortversi yang sesuai, Anda cukup menggunakan:

du -h | sort -rh

punya saya

$ sort --version
sort (GNU coreutils) 8.12

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


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.


1

Saya mendapatkan ini untuk saya:

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

Yang (saya baru tahu) sama dengan:

ls -lS

0

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

ls -lsh | sort -n | sed 's/^[0-9 ]* //'
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.