En çok yer kaplayan dizinleri veya dosyaları nasıl bulabilirim?


11

Diskimde yer kalmadı:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sda7       803G  715G   48G  95% /home

Kimlerin kaldırılacağına karar vermek için tüm ana dizini gözden geçirmek ve en çok yer alan 10 dizin veya dosyayı bulmak istiyorum.

du -sh *tüm alt dizinlerin boyutunu görebilir, ancak yalnızca geçerli klasörü alır. İhtiyacım olan suçluların kim olduğunu bulmak için sırasıyla birçok alt dizine ve yinelemeli olarak bölmem gerekebilir.

Bunu yapmanın iyi bir yolu var mı?

Yanıtlar:


5

Eğer bir GUI kullanabilirsiniz ise deneyin Baobab . Bu, sabit disk alanı kullanımını analiz etmek için grafiksel bir araçtır.


10

ncdu , dizinleri tarayan ve disk kullanımını en yüksekten en düşüğe listeleyen bir komut satırı seçeneğidir. Bunun için aracıma gidiyorum.

Yine de bu şekilde tekrar tekrar dalmanız gerekecek, ancak bunu yapmanın güzel ve kolay bir yolu.


9

Bu komutu kullanın:

t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');du / –exclude /proc –exclude /sys –max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++) {printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'

Komut satırında yüzde olarak alanın çoğunu tüketen dizinleri gösteren bir grafik türünü gösterecektir.

/homeSadece analiz etmek istiyorsanız - bunu komutta şu şekilde belirtebilirsiniz:

t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');du /home –exclude /proc –exclude /sys –max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++) {printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'

Şöyle görünecektir: resim açıklamasını buraya girin

Buradan alındı .


9

du | sıralama -rn | kafa

  • du = Disk Kullanımı
  • sayısal sıra kullanarak sıralama, ters
  • ilk on satır

4

Baobab için +1. komut satırında, genellikle sadece du -hcsx *veya du -hcsx * | sort -hson bir başarısız sürümüne ihtiyacım var sort) ve devam ederken alt dizinleri kontrol ediyorum.

Ayrıca, üstündeki + mcdüğmesine basarak alt dizin boyutlarını hesaplamanın düzgün bir özelliği vardır ( tüm alt dizinlerin boyutunu hesaplamak için üstündeki + düğmesine basın . Daha sonra menüde boyuta göre sıralamayı seçebilirsiniz.CtrlSpaceCtrlSpace..


2
komut satırında ncdu 'yu denemelisiniz. Temelde bir ncurses du.
Rob

1

Bunu dene:

du -a /dir | sort -nr | cut -f2 | xargs du -sh | head -n 10

0

Başka bir GUI favorisi: kdirstat

Güzel keşif özellikleri ve ve dosyalarınızı silmenize / sıkıştırmanıza yardımcı olmak için (genişletilebilir) araçlar menüsüne sahiptir.

Ayrıca pastebin için yüklediğim dir_usage dediğim bir komut satırı komut dosyası var .


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

Yukarıdaki komut satırı aşağıdakileri yapar (sırayla):

  • Geçerli klasördeki tüm dosyaları (dizinleri değil) bulun
  • Her biri için ekran kullanımı
  • Sonuçları sayısal olarak sıralama
  • Yalnızca son 10 (en yüksek kullanım) satırı kullanın
  • 10 dosya adını kesin (ilk sütun kullanım, ikincisi dosya adı)
  • Her dosya adı için kullanımı görüntüle (insan formatında)

Bu, geçerli klasör ve alt klasörler içinde en büyük 10 dosyanın insan tarafından okunabilir boyutlarının bir listesi ile sonuçlanacaktır.


3
Cevabınızı genişletebilir misiniz?
50-3
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.