Mencari serangkaian perintah yang akan menunjukkan kepada saya file terbesar di drive.
command-line
disk-usage
Ryan Detzel
sumber
sumber
Jawaban:
Jika Anda hanya perlu menemukan file besar, Anda dapat menggunakan
find
dengan-size
pilihan. Perintah selanjutnya akan mencantumkan semua file yang lebih besar dari 10MiB ( jangan dikelirukan dengan 10MB ):Jika Anda ingin menemukan file di antara ukuran tertentu, Anda dapat menggabungkannya dengan pencarian "ukuran lebih rendah dari". Perintah selanjutnya menemukan file antara 10MiB dan 12MiB:
apt-cache search 'disk usage'
daftar beberapa program yang tersedia untuk analisis penggunaan disk. Salah satu aplikasi yang terlihat sangat menjanjikan adalahgt5
.Dari deskripsi paket:
Pada bagian "paket terkait" dari GT5 , saya temukan
ncdu
. Dari deskripsi paketnya:sumber
-ls
output di-hardcode (lihat kode sumber untukpred_fls
dan fungsi list_file ). Anda dapat mencoba memperkirakan output menggunakan-printf
opsi, post-proses output dengan awk, atau menggunakan sesuatu sepertifind ... -type f -exec ls -ldh {} \; | column -t
Saya hanya menggunakan kombinasi
du
dansort
.Maka itu adalah kasus bilas dan ulangi . Targetkan subdirektori yang menurut Anda terlalu besar, jalankan perintah untuknya, dan Anda tahu apa penyebabnya.
Catatan: Saya menggunakan
du
's-x
bendera untuk menjaga hal-hal terbatas pada satu filesystem (saya memiliki cukup pengaturan yang rumit dari hal lintas dipasang antara SSD dan RAID5).Catatan 2:
2>/dev/null
mengalihkan semua pesan kesalahan menjadi terlupakan. Jika mereka tidak mengganggu Anda, itu tidak wajib.sumber
du
halaman manual: "Ringkas penggunaan disk masing-masing FILE, secara rekursif untuk direktori."Solusi favorit saya menggunakan campuran dari beberapa jawaban bagus ini.
du
argumen:-a
untuk "semua" file dan direktori. Biarkan hanya untuk direktori saja-BM
untuk menghasilkan ukuran dalam ukuran blok megabyte (M) (B)2>/dev/null
- kecualikan pesan kesalahan "izin ditolak" (terima kasih @Oli)sort
argumen:-n
untuk "numerik"-r
untuk "membalikkan" (terbesar ke terkecil)head
argumen:-n 50
untuk hanya 50 hasil teratas.more
jika menggunakan nomor yang lebih kecilCatatan: Awalan dengan
sudo
untuk memasukkan direktori yang akun Anda tidak memiliki izin untuk mengakses.Contoh menampilkan 10 file dan direktori terbesar di / var (termasuk grand total).
sumber
Jawaban qbi benar tetapi akan sangat lambat ketika ada banyak file karena akan memulai proses ls baru untuk setiap item.
versi yang jauh lebih cepat menggunakan find tanpa memunculkan proses anak adalah menggunakan printf untuk mencetak ukuran dalam byte (% s) dan path (% p)
find "$directory" -type f -printf "%s - %p\n" | sort -n | tail -n $num_entries
sumber
Untuk menampilkan direktori top-20 terbesar (secara rekursif) di folder saat ini, gunakan one-liner berikut:
atau (lebih berorientasi Unix):
Untuk top-20 file terbesar di direktori saat ini (secara rekursif):
atau dengan ukuran yang dapat dibaca manusia:
Jadi alias-alias ini berguna untuk ada dalam file rc Anda (setiap kali Anda membutuhkannya):
sumber
Ini sepertinya aplikasi yang sempurna untuk
find
:Perintah ini akan menemukan semua file dalam direktori
$DIRECTORY
dan menjalankannyals -s
. Perintah terakhir mencetak ukuran file yang dialokasikan ditambah nama file. Hasilnya diurutkan secara numerik dan lima entri terakhir ditampilkan. Jadi, Anda akan melihat 5 file terbesar di$DIRETORY
atau subdirektori apa pun. Jika Anda memasukkan,tail -n 1
Anda hanya akan melihat file terbesar.Selanjutnya Anda bisa bermain-main dengan banyak
find
. Misalnya, Anda dapat mencari file yang lebih muda dari n hari (-ctime -n
) atau milik pengguna khusus (-user johndoe
).sumber
Ketika saya perlu membuat lebih banyak ruang kosong di server saya menggunakan perintah ini. Ia menemukan semua file lebih besar dari 50 MB dan "du-h" membuat daftar file yang lebih baik dan "sort -n" setelah pipa membuat daftar numerik diurutkan berdasarkan ukuran file.
sumber
Coba Baobab, ini memberi Anda gambaran grafis file dan folder, Anda dapat melihat di mana babi ruang nyata berada dan menghapusnya dengan satu klik https://help.ubuntu.com/community/Baobab
sumber
Untuk menemukan semua file GB misalnya, saya akan menggunakan du dan grep, meskipun metode lain yang disebutkan di sini juga tampak hebat.
Anda juga bisa menyukai opsi --except yang dimiliki du.
sumber
Anda juga dapat mengurutkan file berdasarkan ukuran:
Itu hanya menemukan file dan mengeksekusi
du -h
untuk setiap file, yang menunjukkan ukuran file. Terakhir, kami mengurutkan output darifind
/du
menurut kolom pertama (dalam format yang dapat dibaca manusia).File yang dicetak terakhir adalah yang terbesar.
sumber
Anda dapat menggunakan perintah untuk melihat file terbesar sambil melewatkan direktori:
Untuk menemukan semua file yang lebih besar dari 100MiB (ini bukan 100MB, lihat di sini jika Anda bingung):
perintah di bawah ini akan menampilkan 5 file terbesar di folder
$DIRECTORY
:MENGGUNAKAN
du
: Perintah di bawah ini yang menggunakan du, menampilkan direktori dengan 20 ukuran terbesar di folder kerja rumah:Sekarang agar sekarang untuk menampilkan direktori / file terbesar termasuk sub-folder, jalankan:
Menggunakan
ls
:Untuk daftar 5 file terbesar teratas di direktori / bin, jalankan perintah di bawah ini:
Anda juga dapat menggunakan Disk Usage Analyzer atau Baobao seperti yang ditunjukkan di sini sebagai contoh.
sumber
Alat hebat, ramah pengguna yang dirujuk dalam jawaban untuk pertanyaan serupa adalah
NCurses Disk Usage
alat:sumber