Solusi 1:
Sejak GNU coreutils 7.5 dirilis pada Agustus 2009, sort
memungkinkan -h
parameter, yang memungkinkan sufiks numerik dari jenis yang dihasilkan oleh du -h
:
du -hs * | sort -h
Jika Anda menggunakan pengurutan yang tidak mendukung -h
, Anda dapat menginstal GNU Coreutils. Misalnya. pada Mac OS X lama:
brew install coreutils
du -hs * | gsort -h
Dari sort
petunjuk:
-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)
Solusi 2:
du | sort -nr | cut -f2- | xargs du -hs
Solusi 3:
@Douglas Leeder, satu jawaban lagi:Urutkan keluaran yang dapat dibaca manusia dari du -h menggunakan alat lain. Seperti Perl!
du -h | perl -e 'sub h{%h=(K=>10,M=>20,G=>30);($n,$u)=shift=~/([0-9.]+)(\D)/;
return $n*2**$h{$u}}print sort{h($b)<=>h($a)}<>;'
Bagi menjadi dua garis agar sesuai dengan tampilan. Anda dapat menggunakannya dengan cara ini atau menjadikannya one-liner, keduanya akan berhasil.
Keluaran:
4.5M .
3.7M ./colors
372K ./plugin
128K ./autoload
100K ./doc
100K ./syntax
EDIT: Setelah beberapa putaran bermain golf di PerlMonks, hasil akhirnya adalah sebagai berikut:
perl -e'%h=map{/.\s/;99**(ord$&&7)-$`,$_}`du -h`;[email protected]{sort%h}'
Solusi 4:
Ada alat yang sangat berguna yang saya gunakan disebut ncdu yang dirancang untuk menemukan folder dan file penggunaan disk yang sangat tinggi, dan menghapusnya. Berbasis konsol, cepat dan ringan, serta memiliki paket di semua distribusi utama.
Solusi 5:
du -k * | sort -nr | cut -f2 | xargs -d '\n' du -sh