Bir dizinin boyutunu nasıl hesaplayabilirim?


181

Bir dizinin boyutunu bilmek nasıl? Alt dizinler ve dosyalar dahil.

Yanıtlar:


230
du -s directory_name

Veya okunabilir çıktılar elde etmek için:

du -sh directory_name

-sSeçenek her alt boyutunu, sadece toplam boyutunu listelemek anlamına gelir.


7
Aslında duvarsayılan birim POSIX'e göre 512 bayt blok ve Linux'ta (ortam değişkeni POSIXLY_CORRECTayarlanmadıkça) veya ile kilobayttır du -k.
Gilles

3
@Gilles: İyi yakalayış. Cevabımdaki "bayt sayısı" bitini kaldırdım.
sepp2k

1
öngörülen gibi çalıştı
skidadon

1
Eğer dizin çok büyükse ve çok sayıda alt dizin varsa, çok zaman alır ... neredeyse 1 dakika .. bu normal mi? boyutu daha hızlı almanın bir yolu var mı?
yeahman

2
"Bag" klasörümün boyutunu hesaplamam gerekiyordu, du -sh bagmükemmel çalışıyordu!
António Almeida

7

Ncdu gibi ayrı bir paket kullanmak iyi sonuç verirken, birçok klasörün aynı karşılaştırmasını, bir dereceye kadar, sadece boyutlandırılacak klasörlerin bir listesini vererek yapabilirsiniz. Örneğin, sisteminizdeki üst düzey dizinleri karşılaştırmak için ...

cd /    
sudo du -sh ./*

2
Daha basit,du -sh /*
roaima



1

Deneyin

du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr

Bu, büyük dizinleri daha sonra kullanarak elemek için bulmalarına yardımcı olur. du -sh ./*


0

Ayrıca ls -ldh kullanabilirsiniz:

ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc

-L uzun liste içindir; -d dir içeriğini göstermek için dir bilgilerini görüntülemek içindir, -h huma okunabilir formatta boyutu görüntülemek içindir.


4
Bu doğru değil, soran kişi açıkça bir dizinin kapladığı yeri ve diskteki içeriğini arıyor . @ sepp2k 'ın cevabı doğru.
12'de 13

1
Ls -ldh komutu yalnızca bir dizinin inode yapısının boyutunu gösterir. Metrik, dosya adlarının dizin tablosunun boyutunun bir yansımasıdır, ancak dizindeki dosya içeriğinin gerçek boyutunun değil.
linbianxiaocao 28:16

0

Her zaman "ncdu" paketini yüklerim ve tüm dizinlerin çıktılarını grafiksel olarak gösteririm. Bunun nedeni genellikle, tek bir dizinin ne kadarının toplandığına bakılmaksızın makinelerimdeki en fazla disk alanını neyin kapladığını bilmem gerekir.

Kullanım: sudo ncdu /( sudoOkuma iznine sahip olduğunuz klasörlere ihtiyacınız yoktur ).

Tüm dosya sistemindeki disk kullanım istatistiklerini taramak biraz zaman alabilir. Güzel bir komut satırı grafik gösterimi vardır ve taranan yolda daha derine veya daha yükseğe çıkmak gibi ok tuşlarını kullanarak klavyeyle gezinmeyi içerir. Öğeleri tuşuna basarak da silebilirsiniz D.



0

du -hd1

İnsan tarafından okunabilir biçimde, tüm dizinlerin boyutlarını listeler;

656K    ./rubberband
2.2M    ./lame
652K    ./pkg-config

0

Zaten en iyi cevabı verildiğinden aşağıdaki komutu kullandım

sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

çıktı

 sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

679445
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.