2011-04-17 16 views
19

'dan çok farklı du çıktısı neden du -b'dan çok farklı? -b, --apparent-size --block-size=1 için kısaltılmıştır. Sadece --apparent-size kullanarak bana çoğu zaman aynı sonucu verir, ancak --block-size=1 hile yapmak gibi görünüyor. Çıkışın o zaman doğru olup olmadığını merak ediyorum ve hangi numaraları istiyorum? (yani, başka bir depolama aygıtına kopyalandığında gerçek dosya boyutu)niçin 'du' genellikle du -b`

+6

Neden düşüş yok? Bu çok güzel bir soru gibi görünüyor. Bir soru veya yanıtı düşürmek için herkesin bir şeyler öğrenebilmesi için lütfen yorum yapma nezaketine sahip olun. Anonim downvote, atılan potansiyel bir öğretme anıdır. –

+1

@Pete: muhtemelen StackOverflow için konu dışı olduğu için. Bazı daha yüksek itibarlı kullanıcıların fark edeceğini umuyorum. –

cevap

21

Görünür büyüklüğü uygulamalarınız dosyasında olduğunu düşünüyorum bayt sayısıdır. Dosyayı FTP veya HTTP üzerinden göndermeye karar verdiyseniz, ağ üzerinden aktarılacak veri miktarı (protokol başlıklarını saymaz). Ayrıca cat theFile | wc -c sonucu ve mmap kullanarak her şeyi yüklediyseniz, dosyanın alacağı adres alanı miktarıdır.

Disk kullanımı, dosyanızın o alanı kapladığından başka bir şey için kullanılamayan alan miktarıdır.

Çoğu durumda, disk kullanımı disk kullanımından daha küçüktür, çünkü disk kullanımı dosyanın son (kısmi) bloğunun tam boyutunu sayar ve görünen boyut yalnızca bu son satırdaki verileri sayar. Ancak, seyrek bir dosyaya sahip olduğunuzda görünen boyut daha büyüktür (dosyanın sonuna bir yere gittiğinizde seyrek dosyalar oluşturulur ve orada bir şeyler yazılır - OS, sıfırlarla dolu çok sayıda blok oluşturmaya zahmet etmez - - Sadece yazmaya karar verdiğiniz dosyanın parçası için bir blok oluşturur).

+0

teşekkürler çok daha büyüktür! Bu tam bir açıklama. o zaman niçin 'wc -c theFile' ile aynı çıkışa sahip olmak için 'block-size = 1' 'ye ihtiyacım var (kedi işlemini kaydederek). -h, -k, -m, -B1 vb. belirttiğimde, sadece 'doğru' bayt sayısını verir mi? ama belki bu gerçekten başka bir soru? Varsayılan olarak çıkışlar, bayt kullanımı değil, blok kullanımını mı? – knittl

+0

@knittl: Bilmiyorum. –

+0

Güzel bir açıklama ama '--block-size = 1' hakkında soru konuşmuyor - -1. –

2

Varsayılan olarak, dosya boyutuyla aynı veya daha büyük olan disk kullanımı söz konusudur. --apparent boyutlu altında söylediği gibi

print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be 
larger due to holes in (`sparse') files, internal fragmentation, indirect blocks, and the like 
+0

Yani 'görünen boyutta' tam olarak nedir? ve tam tersi ile karşılaşıyorum: görünen boyut neredeyse her zaman disk kullanımı – knittl

0

Karşılaştırın (örneğin) du -bm için du -m. Blok boyutu 1M olmak

-b setleri --apparent-size --block-size=1, ama sonra m geçersiz kılar. -bh-h karşı benzer

: -bh--apparent-size --block-size=1 --human-readable anlamına gelir ve tekrar h geçersiz kılar blok boyutu.

2

Dosyalar ve klasörler

  • --apparent boyutlu diskteki boyut bayt miktarıdır

  • dosya veya klasör gerçek boyutu gerçek boyutunu ve diskteki boyutu var dosya veya klasör diskte alır. Eğer belirgin boyutlu hemen her zaman disk kullanımı daha birçok büyüklükleri yüksek olduğunu karşılaşırsanız sadece

du kullanarak Aynı şey o zaman iç parçalanma ile dosyaların (' `seyrek) dosyaların bir şey var demektir veya dolaylı bloklar.