Menemukan apa yang menggunakan semua ruang di * nix

21

Urutan perintah mana yang akan memberi tahu saya file mana yang terbesar dimulai dari direktori tertentu, termasuk semua sub direktori? Saya ingin tahu kemana semua ruang pergi.

Lebih disukai hanya dengan perintah unix'y biasa.

Jika memungkinkan, cobalah untuk tetap kompatibel dengan Sun OS 5.10 (mungkin sebagai tambahan untuk jawaban Linux biasa, bukan sebagai pengganti, untuk membuatnya sealami mungkin.)

Alex Budovski
sumber
Ada dua suara untuk SU dan dua untuk SF. Mana yang lebih tepat? Ini bisa menjadi milik salah satu, menurut saya.
Mmyers
5
@mmyers: memberikannya kepada SU ... SU membutuhkan Pertanyaan Nyata!
Shog9
1
Tapi SU sudah memiliki pertanyaan yang sangat mirip! superuser.com/questions/9847/…
Jonik

Jawaban:

11

Saya pribadi suka menggunakan du -sh *untuk melihat seberapa besar setiap direktori dalam direktori saat ini.

Juga Anda bisa menyortir untuk memiliki folder yang lebih besar pertama: du -shx * | sort -hr. Untuk du:

  • -s, --summarize: hanya menampilkan total untuk setiap argumen
  • -h, --human-readable: ukuran cetak dalam format yang dapat dibaca manusia (mis., 1K 234M 2G)
  • -x, --one-file-system: lewati direktori di berbagai sistem file

Untuk sort:

  • -h, --human-numeric-sort: bandingkan angka yang dapat dibaca manusia (mis., 2K 1G)
Jorge Israel Peña
sumber
Hal ini sebenarnya sangat berguna dengan mod minor: du -s * | sort -nr.
Alex Budovski
5
Anda dapat menyimpan ukuran file dalam format yang dapat dibaca manusia du -sh * | sort -hr.
Jorge Israel Peña
du -shx * | sort -hrbagus tetapi hanya mengembalikan direktori saat ini. Bagaimana saya melakukan sistem ini secara luas? Dan bagaimana saya bisa mengecualikan semuanya di bawah 100mb? Terima kasih.
tem
Terserah doa di shell. Jadi *apa yang membuatnya berlaku untuk semua yang ada di direktori saat ini, tetapi Anda bisa dengan mudah mengubahnya menjadi misalnya some/other/path/*, atau jika Anda hanya ingin menjalankannya pada satu direktori secara keseluruhan, maka abaikan *pola gumpalan. Sedangkan untuk menyaring hal-hal, mungkin ajukan pertanyaan terpisah.
Jorge Israel Peña
Untuk menjalankannya secara rekursif seluruh sistem, Anda mungkin ingin memasangkannya dengan finddi beberapa direktori root dan menggunakan -execparameternya untuk memanggil du. The findprogram itu sendiri dapat mungkin menyaring berdasarkan ukuran file dengan sesuatu seperti size +100M. Lihat pertanyaan ini . Mungkin sesuatu seperti find / -size +100M -exec du -sh {} \; | sort -hr, meskipun itu belum teruji.
Jorge Israel Peña
13

ncdu

Luar biasa: CLI, berbasis ncurses, cepat, sederhana. Instal dengan sudo apt install ncdu.

masukkan deskripsi gambar di sini

Buka SEO
sumber
5

pada dasarnya Anda bisa menggunakan perintah du. sesuatu seperti ini

du -a /home | sort -rn |head -1

silakan lihat halaman manual atau info du untuk opsi lebih lanjut.

Atau, Anda dapat menggunakan GNU find.

find /home/ -type f -printf "%s:%p\n" | sort -t":" -rn| head -1  
pengguna31894
sumber
Apakah 'temukan' di Sun OS 5.10 memiliki alternatif yang dapat saya gunakan untuk -printf?
Alex Budovski
Juga, apakah ada cara saya bisa mendapatkan perintah pertama (du ...) untuk menyaring direktori? Saya hanya benar-benar tertarik pada file, seperti dengan perintah kedua Anda.
Alex Budovski
5

Bukan baris perintah tetapi masih unix'y: kdirstat

Saya menggunakannya untuk mencari tahu di mana semua ruang pergi dan saya menyukainya jauh lebih baik daripada Disk Usage Analyzer (alias Baobab). Ini adalah salah satu dari beberapa aplikasi KDE yang ditoleransi di lingkungan GNOME saya ;-)

masukkan deskripsi gambar di sini

Menurut kdirstat.sourceforge.net ini berjalan pada Solaris.

Walaupun KDirStat adalah program KDE, ia berjalan dengan baik di setiap desktop X11, yaitu, ia berjalan di Linux, BSD, dan banyak sistem tipe Unix lainnya (Solaris, HP-UX, AIX, ...).

Ludwig Weinzierl
sumber
Di ubuntu: k4dirstat dan qdirstat. Yang terakhir lebih terkini. Saya tidak suka mereka mengizinkan untuk menghapus folder
develCuy
3
du -a | sort -n

akan melakukan pekerjaan itu. Menggunakan baobab (itu adalah bagian dari utilitas gnome, jadi sepertinya sudah diinstal pada sistem Anda), Anda mendapatkan rincian grafis yang cukup bagus dari ruang yang digunakan.

balpha
sumber
Ada alasan untuk menggunakan -g bukan -n? "Gunakan opsi ini hanya jika tidak ada alternatif; ini jauh lebih lambat daripada --numeric-sort (-n) dan itu dapat kehilangan informasi saat mengkonversi ke floating point." Gnu.org/software/coreutils/manual/html_node/…
sana
@therefromhere: Saya menggunakan halaman manual, yang tidak cukup bertele-tele seperti situs yang Anda tautkan. Saya baru saja memilih opsi pertama yang berhasil untuk kasus tertentu. Tapi kamu benar; Saya telah mengedit anwser saya. Terima kasih!
balpha
3

Penganalisis Penggunaan Disk

Jika Anda menggunakan distro berbasis Debian / Ubuntu ada beberapa GUI yang tersedia di repositori, yang dapat Anda temukan menggunakan synaptic.

masukkan deskripsi gambar di sini

Hasen
sumber
3
du . -ha | sort -hr
  • -a, --all: tulis jumlah untuk semua file, bukan hanya direktori
  • -h, --human-readable: ukuran cetak dalam format yang dapat dibaca manusia (mis., 1K 234M 2G)
kemalasan
sumber
1
Saya menemukan fakta bahwa Anda dapat mengucapkan perintah itu sangat menghibur. Kedengarannya lucu juga.
jtbandes
2
-1, ini salah. "-H" pada perintah du memecah penyortiran.
sana
1
Itu tidak salah, hanya saja tidak portabel. -h adalah GNUism. Gunakan -k sebagai gantinya dengan Sun OS.
Ludwig Weinzierl
+ Ludwig Kurasa kau tidak mengerti. Dengan menambahkan -h itu membuat angka-angka yang dapat dibaca manusia, karenanya tidak ada angka lagi yang dapat digunakan oleh perintah sortir. misalnya hal-hal akan diurutkan seperti ini: "760K 784M 788K 860K 944K 985M" Seharusnya du -ha | sort -hratau du -ha | gsort -hr(pada osx setelah menginstal core utils)
Gerry
2

Komandan Tengah Malam

Jika Anda menginginkan output daftar dengan GUI dan opsi navigasi yang bagus, instal Midnight Commander ( mcdi sebagian besar pengelola paket), dan centang "tampilkan ukuran direktori" di menu perintah. Anda juga dapat Ctrl+ space.

masukkan deskripsi gambar di sini

Adam Matan
sumber