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.