Filesystem penuh: bagaimana menemukan direktori terbesar atau file terbesar? [duplikat]

32

Pertanyaan ini sudah ada jawabannya di sini:

Di Linux, saya mencari perintah untuk membuat daftar file terbesar dan / atau direktori terbesar di bawah direktori.

Eric V
sumber
Alat paling berguna yang saya temukan adalah xdiskusage ( xdiskusage.sourceforge.net ) Ini menunjukkan secara grafis di mana file - berdasarkan ukuran. Alat hebat! (dan berfungsi langsung dengan X11)
jcoppens
Bagaimana ini digandakan dari beberapa pertanyaan yang telah ditutup sebagai di luar topik? Tidak masuk akal.
kenorb

Jawaban:

17

Dari direktori mana saja:

du -a | sort -n -r

Brent Worden
sumber
ini menunjukkan file individual, tetapi pertanyaannya adalah tentang direktori juga
knocte
du tanpa argumen meringkas penggunaan disk oleh direktori. du dengan -a menghasilkan informasi direktori yang sama dan menyertakan penggunaan disk untuk file individual juga.
Brent Worden
tidak dapat menjalankan sortir ketika Anda kehabisan ruang: = (
Jonathan Henson
28

Perintah berikut menunjukkan kepada Anda satu tingkat direktori dan ukurannya

du --max-depth = 1 / path | sort -r -k1,1n

Jika salah satu dari mereka benar-benar menonjol (yang terakhir dalam daftar adalah yang terbesar karena sort -r ), kemudian Anda menjalankan kembali perintah pada direktori itu, dan kemudian terus berjalan sampai Anda menemukan direktori / file yang menyinggung.

Jika semua yang Anda inginkan adalah sepuluh file terbesar lakukan saja

find / home -type f -exec du -s {} \; | sort -r -k1,1n | kepala

Marcin
sumber
angka terbesar berakhir di bagian bawah untuk saya tidak masalah jika saya tambahkan sort -r atau tidak. Apakah ada cara untuk mendapatkan angka terbesar di atas?
squarecandy
Anda harus menunjukkan untuk mengurutkan kolom mana yang ingin Anda urutkan, dan itu numerik (bukan alfanumerik). Itulah yang akan dilakukan -k1,1rn. Secara default sort tidak menggunakan sortir alfanumerik pada kolom pertama.
Marcin
Ya, itu menyortir dengan benar, tetapi dalam urutan naik ke angka tinggi tidak masalah jika saya termasuk sort atau sort -r. Apakah saya salah paham bagaimana -r bekerja? Saya kira itu bukan masalah besar. Contoh Anda sangat membantu dan memberi saya info yang saya butuhkan.
squarecandy
2
Dengan sort Saya sudah ( sort (GNU coreutils) 8.13 di Ubuntu 12.04.3) opsi -r tidak berfungsi jika -n segera menyusul -k ( -k1,1n ). Urutan opsi ini berfungsi: sort -rnk1,1.
pabouk
26

Utilitas yang disebut ncdu akan memberi Anda informasi yang Anda cari.

sudo apt-get install ncdu

Pada OS X, dapat diinstal menggunakan Homebrew:

brew install ncdu
David Pratt
sumber
2
+1 Saya belum pernah mendengar yang ini sebelumnya - bekerja sangat baik di Mac juga.
Andrew E
Ini adalah solusi yang jauh lebih baik daripada kedua jawaban yang lebih tinggi.
AlexLordThorsen
Ini sangat mengejutkan. Sarankan ini di atas semua jawaban lain!
Allen Gingrich
4

du -sk * | sort -nr | kepala -1

Ini akan menampilkan direktori / file terbesar di direktori dalam KB. Mengubah nilai head akan menghasilkan file / direktori x atas.

Sridharpp
sumber
2

Posting ini akan membantu Anda dengan baik:

cd /path/to/some/where
du -a /var | sort -n -r | head -n 10
du -hsx * | sort -rh | head -10
Matz
sumber
2

Perintah berikut akan mengembalikan 10 file terbesar dari yang diberikan /path

du -a -h / path | sort -h -r | kepala -n 10

Saya suka menggunakan -h opsi untuk keterbacaan. Kedua du dan sort perlu punya -h.

Jiang
sumber
1

Menggunakan

ls -A | xargs -I artifact du -ms artifact | sort -nr

Secara opsional, Anda dapat menambahkan pipa dan menggunakan head -5

Abhishek
sumber
0

Gunakan du. Coba ini untuk memesan hasilnya:

du | sort -n
Heisenbug
sumber
0

Coba satu-liner berikut (menampilkan top-20 file terbesar di direktori saat ini):

ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20

atau dengan ukuran yang dapat dibaca manusia:

ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20

Perintah kedua untuk bekerja pada OSX / BSD dengan benar (as sort tidak punya -h ), Anda perlu menginstal sort dari coreutils.

Jadi alias ini berguna untuk Anda miliki di rc file (setiap kali saat Anda membutuhkannya):

alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
kenorb
sumber
-5
du -sh /path * | sort -nr | grep G

G untuk GIG (untuk menyingkirkan lebih kecil) file / direktori

hutch
sumber
Ini mencantumkan semua file dan folder, menunjukkan ukurannya. Itu tidak mengurutkan ukuran dengan nilai byte K, M atau G, kecuali jika Anda GREP seperti yang ditunjukkan
Canadian Luke
Juga akan menemukan apa pun dengan a G dalam nama file.
Kevin Panko