En fazla disk alanını kullanan dosyaları bulma


43

Sabit diskimdeki en büyük dosyaları listelemek mümkün mü? df -HDisk kullanımımı görüntülemek için sıklıkla kullanıyorum , ancak bu yalnızca kalan yüzdeyi, kalan GB sayısını, vb.

Çok sayıda küçük dosya ve çok küçük çok sayıda dosya içeren çok sayıda veri yoğun hesaplama yapıyorum. Kullanılan disk alanımın çoğu çok az sayıda dosyada olduğu için, bu büyük dosyaların nerede olduğunu bulmak zor olabilir. 1 kB'lik bir dosyayı silmek çok fazla boş alan oluşturmaz, ancak 100 GB'lik bir dosyayı siler. Sabit sürücüdeki dosyaları boyutlarına göre sıralamanın bir yolu var mı?

Teşekkürler.


Yanıtlar:


47

Standart mevcut araçlarla:

Geçerli dizindeki en büyük 10 dosyayı listelemek için: du . | sort -nr | head -n10

Geçerli dizindeki en büyük dizinleri listelemek için: du -s * | sort -nr | head -n10

GÜNCELLEME Bu günlerde genellikle daha okunaklı bir form kullanıyorum (Jay Chakra'nın başka bir cevabında açıkladığı ve ayrıldığı gibi | head -n10, sadece ekrandan kaymasına izin ver. Son satır en büyük dosyaya veya dizine (ağaç) sahip.

Bazen, örneğin Geçerli dizinde çok sayıda bağlama noktası bulunduğunda, kullanmak yerine -xya da birden çok yerine --exclude=PATTERN, dosya sistemini kullanılmayan bir bağlama noktasına ( genellikle /mnt ) monte etmek ve oradan çalışmak zordur.

Büyük (NFS) birimlerle çalışırken du, çok sayıda (alt) dizin üzerinde çalışırken depolama arka ucunda (doldurucu) önemli bir yüke neden olabileceğinizi unutmayın . Bu durumda quota, ses ayarını düşünmek daha iyidir .


3
İlk seçeneğin için onları birlikte listeleyemez ls -Sl | headmisin?
Bernhard

Hayır, dutüm dizin ağacını geçer, ls -S ise sadece geçerli dizini kontrol eder.
jippie

35

Jippie'nin cevabına ekleme

Geçerli dizindeki en büyük dizinleri okunaklı biçimde listelemek için:

du -sh * | sort -hr | head -n10

Numune:

[~]$ du -sh * | sort -hr | head -n10
48M app
11M lib
6.7M    Vendor
1.1M    composer.phar
488K    phpcs.phar
488K    phpcbf.phar
72K doc
16K nbproject
8.0K    composer.lock
4.0K    README.md

Okumayı daha uygun hale getirir :)


14

ncduSize, disk kullanımına genel bir bakış sunabileceği için deneyin . Web sitesinden:

Ncurses arayüzüne sahip bir disk kullanım analizörü, tüm gafik kurulumunuzun olmadığı ancak basit bir SSH bağlantısı yapmak zorunda olduğunuz uzak bir sunucuda çalıştırılmak üzere tasarlanmıştır. ncdu hızlı, basit ve kullanımı kolay olmayı ve ncurses kurulu olan herhangi bir POSIX benzeri ortamda çalışabilmelidir.


3

(gnu)

du -max /dir | sort -nBüyük dosyaların yanı sıra büyük dizinleri de gösterecek, biraz temizlik yapmanız gereken yeri tanımlamak için kullanılabilir.

du -max | sort -n | tail -1000
...
46632   ./i386/update/SuSE-SLES/8/rpm/i586/kernel-source-2.4.21-138.i586.rpm
49816   ./UnitedLinux/apt/i386/RPMS.updates/k_debug-2.4.21-138.i586.rpm
679220  ./UnitedLinux/apt/i386/RPMS.updates
679248  ./UnitedLinux/apt/i386
679252  ./UnitedLinux/apt
691820  ./UnitedLinux/i586
691836  ./i386/update/SuSE-SLES/8/rpm/i586
695192  ./i386/update/SuSE-SLES/8/rpm
695788  ./i386/update/SuSE-SLES/8
695792  ./i386/update/SuSE-SLES
695804  ./i386/update
695808  ./i386
1390184 ./UnitedLinux

(Oldukça yaşlı bir ağaç olduğunu biliyorum: p)


2

Ubuntu'da her dosya ve dizinin boyutunu bulmanın basit ve etkili bir yolu vardır:

Uygulamalar> Aksesuarlar> Disk Kullanımı Analizörü

Bu pencerede araç çubuğunda "Dosya Sistemini Tara" düğmesine tıklayın. Kısa bir süre sonra (saniye) her dizinde ve dosyada disk kullanımına sahipsiniz.



0

Bu komutla deneyebilirsiniz, 20 MB'tan büyük tüm dosyaları listeler.

find / -type f -size +20000k -exec ls -lh {} \; 2> /dev/null \
  | awk '{ print $NF ": " $5 }'  | sort -hrk 2,2

3
Dosya sisteminizdeki en büyük dosya 20 MB ise, muhtemelen disk alanınız azalıyor olmaz. En azından herhangi bir HD ile bu millenium yaptı
Kevin

Bu tek örnek, ne istersen oraya koydun. 20 MB'tan büyük her şeyi, yalnızca 20 MB'ı bulur.
Patseb

ls -lho zaman sort?? ls -sya stat -c %bda muhtemelen daha iyi.
Mikel

Anlamadım Örnekte ls ve sıralama kullan. Tüm diskin dizinini değil dosyaları bulmak istedi.
Patseb

0

aşağıdaki komutu yazın

cd /

sonra yazın

du -sh * | grep G

Yukarıdaki komut, hangi dizin tarafından ne kadar bellek kullanıldığını gösterir. Bundan sonra hangi dizini veya dosyayı silmek istediğinize karar vermelisiniz


-2

Bu komutla deneyebilirsiniz, büyük dosyayı listeler:

ls -lrS | tail -1

HDD’nin tamamını değil, geçerli dizini gösterir.
slm

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.