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.


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


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


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

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.


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

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.


1

Menggunakan

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

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



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'

-5
du -sh /path * | sort -nr | grep G

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


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
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.