Utilitas Linux untuk menemukan file / direktori terbesar [ditutup]


134

Saya mencari program untuk menunjukkan kepada saya file / direktori mana yang paling banyak menempati ruang, seperti:

74% music
 \- 60% music1
 \- 14% music2
12% code
13% other

Saya tahu itu mungkin di KDE3, tapi saya lebih suka tidak melakukannya - KDE4 atau baris perintah lebih disukai.


untuk pengguna mac, saya hanya ingin merekomendasikan perangkat lunak gratis ini bernama Disk Inventory X. unduh di sini derlien.com mudah digunakan untuk mac osx
Nimitack

Jawaban:


131

Untuk menemukan 10 file terbesar (linux / bash):

find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

Untuk menemukan 10 direktori terbesar:

find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

Hanya perbedaannya -type {d:f}.

Menangani file dengan spasi dalam nama, dan menghasilkan ukuran file yang dapat dibaca manusia di output. File terbesar terdaftar terakhir. Argumen untuk mengekor adalah jumlah hasil yang Anda lihat (di sini 10 terbesar).

Ada dua teknik yang digunakan untuk menangani spasi dalam nama file. The find -print0 | xargs -0penggunaan nol pembatas bukannya ruang, dan yang kedua xargs -I{}menggunakan baris bukan ruang untuk mengakhiri item masukan.

contoh:

$ find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

  76M    ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
  76M    ./tmp/projects/onthisday/onthisday.tar.gz
  114M   ./Dropbox/snapshots/weekly.tgz
  114M   ./Dropbox/snapshots/daily.tgz
  114M   ./Dropbox/snapshots/monthly.tgz
  117M   ./Calibre Library/Robert Martin/cc.mobi
  159M   ./.local/share/Trash/files/funky chicken.mpg
  346M   ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi

File terbesar terdaftar pertama : find . -type f -print0 | xargs -0 du | sort -nr | head -10 | cut -f2 | xargs -I{} du -sh {}(yaitu, gunakan sort -nr | head -10bukan sort -n | tail -10)
Sandra Rossi

200

Saya selalu menggunakan ncdu. Ini interaktif dan sangat cepat.


Ya dan itu kecil!
Luke Stanley

5
Saya suka ncdu. Itu salah satu penemuan google favorit saya.
Rob

5
Wow. bagaimana saya tidak tahu ini ada. Terima kasih!
pixel

22
+1000 untuk ncdu--- itu seperti htopuntuk ruang disk. Sangat berguna!
Noah Sussman

karena ada tampaknya tidak menjadi bendera atau pilihan Config, inilah urutan kunci Anda mungkin akan mengetik setiap kali Anda menjalankannya jika Anda ingin melihat file dan folder berbaur dan statistik persentase relatif: [t] [g] [g].
rymo

37

Untuk tampilan cepat:

du | sort -n

daftar semua direktori dengan yang terbesar terakhir.

du --max-depth=1 * | sort -n

atau, sekali lagi, menghindari * yang berlebihan:

du --max-depth=1 | sort -n

daftar semua direktori dalam direktori saat ini dengan yang terbesar terakhir.

(-n parameter untuk mengurutkan diperlukan sehingga bidang pertama diurutkan sebagai angka daripada sebagai teks tetapi ini menghalangi menggunakan parameter -h untuk du karena kita membutuhkan angka signifikan untuk pengurutan)

Parameter lain untuk du tersedia jika Anda ingin mengikuti tautan simbolik (defaultnya adalah tidak mengikuti tautan simbolik) atau hanya menunjukkan ukuran isi direktori tidak termasuk subdirektori, misalnya. du bahkan dapat memasukkan dalam daftar tanggal dan waktu ketika file dalam direktori terakhir kali diubah.


3
Apakah * benar-benar diperlukan. Bukankah secara default menyertakan semua file dalam direktori saat ini?
Josh Hunt

Tidak, * harus berlebihan. Saya tidak yakin apakah menggunakannya adalah tanda kebiasaan baik atau buruk. Terima kasih telah menunjukkannya. Saya telah mengubah jawaban untuk mencerminkannya sebagai opsional.
mas

Ini bagus tapi hasilnya tidak ramah. Saya biasanya beralih ke ini:find {/path/to/directory} -type f -size +{file-size-in-kb}k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'
deed02392

roman # du --max-depth = 1 | sort -n du: opsi ilegal - - penggunaan: du [-A] [-H | -L | -P] [-a | -s | -d depth] [-c] [-l] [-h | -k | -m | -B bsize] [-n] [-x] [-I mask] [file ...]
holms

du -h --max-depth=1 2>/dev/null | sort -nr | grep -v ^0- Agak lebih rapi
Stuart Cardall

23

Untuk sebagian besar hal, saya lebih suka alat CLI, tetapi untuk penggunaan drive, saya sangat suka filelight . Presentasi ini lebih intuitif bagi saya daripada alat manajemen ruang lainnya yang pernah saya lihat.

Tangkapan layar filelight


1
Filelight adalah alat pemangkasan space-hog pilihan saya.
Ryan Thompson

Aplikasi yang sangat bagus. +1
rpax

Secara visual, itu menarik secara artistik, tetapi intuitif? Hanya dari melihatnya, saya tidak tahu apa yang diwakilinya. Adakah yang bisa menjelaskannya? Saya pergi ke situs itu, dan saya tidak melihat penjelasan apa pun.
G-Man

Alat serupa di Mac adalah DaisyDisk, tersedia di daisydiskapp.com
computingfreak

20

Filelight lebih baik untuk pengguna KDE, tetapi untuk kelengkapan (judul pertanyaan umum) saya harus menyebutkan Baobab termasuk dalam Ubuntu, alias Disk Usage Analyzer:

masukkan deskripsi gambar di sini


Jika Anda mencari yang setara dengan ini di platform Mac, checkout DaisyDisk.
computingfreak

8

Alat GUI, KDirStat , menampilkan data dalam bentuk tabel dan grafik. Anda dapat melihat dengan sangat cepat di mana sebagian besar ruang digunakan.

masukkan deskripsi gambar di sini

Saya tidak yakin apakah ini persis alat KDE yang tidak Anda inginkan, tapi saya pikir itu masih harus disebutkan dalam pertanyaan seperti ini. Itu bagus dan banyak orang mungkin tidak mengetahuinya - saya sendiri baru mempelajarinya.


Terima kasih atas jawabannya. Ini alat yang sama persis seperti yang saya miliki di KDE3, tapi saya pindah ke KDE 4.
Robert Munteanu

Apakah Anda yakin tidak bisa mendapatkan kdirstat untuk KDE4?
Jonik

4
Kdirstat sangat lambat. Gunakan ncdusebagai gantinya.
Daenyth

Saya baru saja menekan ctrl + f untuk menemukan ncdu, dan melihat bahwa saya telah meningkatkan @Daenyth
Rob

Di KDE, itu hanya disebut k4dirstat .
phihag

5

Kombinasi selalu merupakan trik terbaik di Unix.

du -sk $(find . -type d) | sort -n -k 1

Akan menampilkan ukuran direktori dalam KB dan mengurutkan untuk memberikan yang terbesar di akhir.
Namun, Tree-view membutuhkan lebih banyak fu ... apakah ini benar-benar diperlukan?

Perhatikan bahwa pemindaian ini bersarang di seluruh direktori sehingga akan menghitung sub-direktori lagi untuk direktori yang lebih tinggi dan direktori dasar .akan muncul di bagian akhir sebagai jumlah utilisasi total.

Namun Anda dapat menggunakan kontrol kedalaman pada pencarian untuk mencari pada kedalaman tertentu.
Dan, lebih banyak terlibat dengan pemindaian Anda sebenarnya ... tergantung pada apa yang Anda inginkan. Kontrol kedalaman finddengan -maxdepthdan -mindepthdapat membatasi kedalaman direktori tertentu.


Berikut adalah variasi yang disempurnakan untuk masalah arg terlalu lama Anda

find . -type d -exec du -sk {} \; |  sort -n -k 1

Saya mencobanya dan saya mendapat banyak 'du: Tugas: Tidak ada file atau direktori'
Josh Hunt

Terima kasih atas jawabannya. Sayangnya saya mendapatkan bash: / usr / bin / du: Daftar argumen terlalu lama
Robert Munteanu

3

Saya suka GT5 . Anda dapat menavigasi pohon dan membuka subdirektori untuk menelusuri lebih detail. Ini menggunakan browser web mode teks, seperti lynx, untuk menampilkan hasilnya. Instal elinks untuk hasil terbaik.

teks alternatif


2

Meskipun tidak memberi Anda output bersarang seperti itu, cobalah du

du -h /path/to/dir/

Menjalankannya di folder Documents saya memuntahkan yang berikut:

josh-hunts-macbook:Documents joshhunt$ du -h
  0B    ./Adobe Scripts
  0B    ./Colloquy Transcripts
 23M    ./Electronic Arts/The Sims 3/Custom Music
  0B    ./Electronic Arts/The Sims 3/InstalledWorlds
364K    ./Electronic Arts/The Sims 3/Library
 77M    ./Electronic Arts/The Sims 3/Recorded Videos
101M    ./Electronic Arts/The Sims 3/Saves
 40M    ./Electronic Arts/The Sims 3/Screenshots
1.6M    ./Electronic Arts/The Sims 3/Thumbnails
387M    ./Electronic Arts/The Sims 3
387M    ./Electronic Arts
984K    ./English Advanced/Documents
1.8M    ./English Advanced
  0B    ./English Extension/Documents
212K    ./English Extension
100K    ./English Tutoring
5.6M    ./IPT/Multimedia Assessment Task
720K    ./IPT/Transaction Processing Systems
8.6M    ./IPT
1.5M    ./Job
432K    ./Legal Studies/Crime
8.0K    ./Legal Studies/Documents
144K    ./Legal Studies/Family/PDFs
692K    ./Legal Studies/Family
1.1M    ./Legal Studies
380K    ./Maths/Assessment Task 1
388K    ./Maths
[...]

Kemudian Anda dapat mengurutkan output dengan menyalurkannya ke sort

du /path/to/dir | sort -n

Terima kasih, tetapi tidak menunjukkan direktori mana yang terbesar. Jika saya memulainya di direktori home saya hasilnya tidak dapat digunakan.
Robert Munteanu

1

Ini adalah skrip yang melakukannya untuk Anda secara otomatis.

http://www.thegeekscope.com/linux-script-to-find-largest-files/

Berikut ini adalah contoh hasil skrip:

**# sh get_largest_files.sh / 5**

[SIZE (BYTES)]     [% OF DISK] [OWNER]         [LAST MODIFIED ON]        [FILE] 

56421808           0%           root           2012-08-02 14:58:51       /usr/lib/locale/locale-archive
32464076           0%           root           2008-09-18 18:06:28       /usr/lib/libgcj.so.7rh.0.0
29147136           0%           root           2012-08-02 15:17:40       /var/lib/rpm/Packages
20278904           0%           root           2008-12-09 13:57:01       /usr/lib/xulrunner-1.9/libxul.so
16001944           0%           root           2012-08-02 15:02:36       /etc/selinux/targeted/modules/active/base.linked

Total disk size: 23792652288 Bytes
Total size occupied by these files: 154313868 Bytes  [ 0% of Total Disc Space  ]

*** Note: 0% represents less than 1% ***

Anda mungkin menemukan skrip ini sangat berguna dan bermanfaat!


2
Meskipun situs web yang ditautkan memberikan instruksi, lebih disukai bagi Anda untuk parafrase kemudian merujuk situs eksternal (yang terlihat seperti blog pribadi). Ini akan mencegah tautan busuk dan membantu lebih banyak orang di situs ini
Luke Kanada

1
Tautan rusak?
Danijel

1

Meskipun menemukan persentase penggunaan disk dari setiap file / direktori bermanfaat, sebagian besar waktu mengetahui file / direktori terbesar di dalam disk sudah cukup.

Jadi favorit saya adalah ini:

# du -a | sort -n -r | head -n 20

Dan outputnya seperti ini:

28626644        .
28052128        ./www
28044812        ./www/vhosts
28017860        ./www/vhosts/example.com
23317776        ./www/vhosts/example.com/httpdocs
23295012        ./www/vhosts/example.com/httpdocs/myfolder
23271868        ./www/vhosts/example.com/httpdocs/myfolder/temp
11619576        ./www/vhosts/example.com/httpdocs/myfolder/temp/main
11590700        ./www/vhosts/example.com/httpdocs/myfolder/temp/main/user
11564748        ./www/vhosts/example.com/httpdocs/myfolder/temp/others
4699852         ./www/vhosts/example.com/stats
4479728         ./www/vhosts/example.com/stats/logs
4437900         ./www/vhosts/example.com/stats/logs/access_log.processed
401848          ./lib
323432          ./lib/mysql
246828          ./lib/mysql/mydatabase
215680          ./www/vhosts/example.com/stats/webstat
182364          ./www/vhosts/example.com/httpdocs/tmp/aaa.sql
181304          ./www/vhosts/example.com/httpdocs/tmp/bbb.sql
181144          ./www/vhosts/example.com/httpdocs/tmp/ccc.sql

1

Untuk menemukan 25 file teratas di direktori saat ini dan subdirektori:

find . -type f -exec ls -al {} \; | sort -nr -k5 | head -n 25

Akan menampilkan 25 file teratas dengan mengurutkan berdasarkan ukuran file melalui perintah pipa "sort -nr -k5".


1

Alternatif lain adalah agedu yang memecah ruang disk oleh waktu akses terakhir, yang membuatnya lebih mudah untuk menemukan ruang membuang file.

Ia bahkan bekerja pada server tanpa X Windows dengan menyajikan halaman web sementara sehingga penggunaannya dapat dianalisis dari jarak jauh, dengan grafik. Dengan asumsi alamat IP server adalah 192.168.1.101, Anda dapat mengetik ini pada baris perintah server

agedu -s / -w --address 192.168.1.101:60870 --auth basic -R

Ini mencetak nama pengguna, kata sandi, dan URL yang dengannya Anda dapat mengakses "GUI" dan menelusuri hasilnya. Setelah selesai, akhiri agedudengan Ctrl+Ddi server.



0

Untuk melengkapi daftar sedikit lagi, saya menambahkan analisa penggunaan disk favorit saya, yaitu xdiskusage.

GUI mengingat saya tentang beberapa utilitas X lain yang baik, cepat dan tidak membengkak, tetapi Anda dapat menavigasi dengan mudah dalam hierarki dan memiliki beberapa opsi tampilan:

$ xdiskusage /usr

masukkan deskripsi gambar di sini


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 (seperti sorttidak ada -h), Anda harus menginstal sortdari coreutils.

Jadi alias-alias ini berguna untuk ada dalam file rc Anda (setiap kali 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'
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.