Perintah mana yang akan mencetak ukuran semua file dan direktori di direktori tmp (termasuk yang tersembunyi) dan mengurutkannya berdasarkan ukuran dari
terbesar hingga terkecil dalam format yang dapat dibaca manusia (misalnya 2 GB)?
Outputnya bisa seperti berikut:
file.mpg 2GB
file.avi 1.8GB
.backtup 1.7 GB (this is directory)
Saya mencoba menggunakan ls
dan du
perintah tetapi tidak dapat menemukan sakelar yang tepat.
Jawaban yang Diterima:
Ini perbaikan cepat, gunakan du + sort. Coba ini:
du -smc * | sort -n
Ini akan mengabaikan file tersembunyi, tetapi itu adalah perbaikan mudah lainnya:
du -smc .[^.] .??* * | sort -n
Ini dapat menyebabkan peringatan tentang jika satu atau beberapa pola di atas tidak cocok dengan file. Pola pertama .[^.]
cocok dengan semua dua nama file karakter yang dimulai dengan . kecuali .., pola kedua, .??*
cocok dengan ketiga huruf atau lebih nama file yang dimulai dengan . dan * cocok dengan semua file yang tidak dimulai dengan . Untuk daftar yang lebih canggih seperti menemukan semua file yang lebih besar dari X di seluruh sistem file, atau mempertahankan daftar pertumbuhan sistem file, saya memiliki beberapa skrip shell DIY yang telah saya tulis dan dapat dibagikan jika Anda tertarik.