Seperti biasa di Linux, ada lebih dari satu cara untuk menyelesaikan pekerjaan. Namun, jika Anda perlu melakukannya dari CLI, ini adalah metode pilihan saya:
Saya mulai dengan menjalankan ini sebagai root atau dengan sudo:
du -cha --max-depth=1 / | grep -E "M|G"
Grep adalah membatasi garis yang kembali ke garis yang kembali dengan nilai dalam rentang Megabyte atau Gigabyte. Jika disk Anda cukup besar, Anda dapat menambahkan |T
juga untuk memasukkan jumlah Terabyte. Anda mungkin mendapatkan beberapa kesalahan pada /proc
,, /sys
dan / atau /dev
karena itu bukan file nyata pada disk. Namun, itu harus tetap memberikan output yang valid untuk sisa direktori di root. Setelah Anda menemukan yang terbesar Anda kemudian dapat menjalankan perintah di dalam direktori itu untuk mempersempit jalan Anda pelakunya. Jadi misalnya, jika /var
itu yang terbesar, Anda bisa melakukannya seperti ini selanjutnya:
du -cha --max-depth=1 /var | grep -E "M|G"
Itu akan menuntun Anda ke masalah anak-anak!
Pertimbangan Tambahan
Sementara perintah di atas pasti akan melakukan trik, saya punya beberapa kritik membangun dalam komentar di bawah ini yang menunjukkan beberapa hal yang juga bisa Anda sertakan.
- Nilai yang
grep
saya berikan dapat mengakibatkan nilai "K" sesekali dikembalikan jika nama direktori atau file memiliki huruf kapital G atau M. Jika Anda benar-benar tidak ingin ada direktori bernilai K yang muncul, Anda ingin naik gim regex Anda menjadi lebih kreatif dan kompleks. misalnyagrep -E "^[0-9\.]*[MG]"
Jika Anda tahu drive mana yang menjadi masalah dan memiliki drive lain yang terpasang di atasnya yang tidak ingin Anda buang waktu termasuk dalam pencarian Anda, Anda bisa menambahkan -x
bendera ke du
perintah Anda . Deskripsi halaman manual dari bendera itu:
-x, --one-file-system
skip directories on different file systems
Anda dapat mengurutkan output dari du
perintah sehingga nilai tertinggi ada di bagian bawah. Cukup tambahkan ini di akhir perintah:| sort -h