"du -s." ve "du -hs." farklı sonuçlar verir (OS X'te)


12

Olan ve olmayan fark -hsadece insan tarafından okunabilen birimler olmalıdır, değil mi?

Görünüşe göre hayır ...

$ du -s .
74216696    .
$ du -hs .
 35G    .

Ya da belki yanılıyorum ve sonucu du -s .KB değil mi?


3
Kullanmayı deneyin du --block-size=1024 -s .. Belki deBLOCK_SIZE512
Echoes_86

6
(OSX) kılavuz sayfasından: "BLOCKSIZE ayarlanmamışsa ve -k seçeneği belirtilmemişse, blok sayımları 512 baytlık bloklar halinde görüntülenir"
user4556274

Dosya sistemi aslında 4096 baytlık bloklar içindeyse, bu çok yardımcı olmaz.
DopeGhoti

Yani boyutu bayt cinsinden almanın bir yolu yok mu? -hSadece 1024'e bölündüğümü ve bazı birimler eklediğini sanıyordum
Creak

2
echo "74216696*512" | bcÇıktılar, 37998948352. Ve evet, -h1024 ile tekrar tekrar bölünerek insan tarafından okunabilir forma dönüştürülür du. Bayt cinsinden boyut için, sadece kullanın --block-size=1. Linux'ta bunun için bir -bseçenek var, ancak OS X'e aşina değilimdu
Sergiy Kolodyazhnyy

Yanıtlar:


23

duçıktı biçimi belirteci olmadan kilobayt değil, 512 baytlık bloklarda disk kullanımı sağlar . Bunun yerine kilobayt cinsinden görüntüleme seçeneğini kullanabilirsiniz . OS X'te (veya macOS veya MacOS veya Macos; hangisini isterseniz), ortam değişkenini ayarlayarak varsayılan birimi özelleştirebilirsiniz (bu, diğer komutları da etkiler).-kBLOCKSIZE


1
Bunu bilmiyordum ... Blok sayısına sahip olmanın ilgisi nedir? Diskteki boyutlar hakkında konuşurken blok kullanan bir insan görmedim ...
Creak

2
Bloklar dosya sistemlerinin atomik birimidir. Herhangi bir dosya disk üzerinde çok sayıda blok tüketir. Bir blok yalnızca gerçek verilerle kısmen doldurulabilir, ancak tüm blok dosyaya atanır. Çoğu insanın günlük kullanımı, yüzde-kullanılmış-serbest anlam dışında blokları önemsemez. Ancak, düşük düzeyli yardımcı programlar (örneğin fdisk, dfve du) aksi belirtilmedikçe bloklar halinde çalışır, çünkü bunlar dahili olarak sayıldıkları birimdir.
DopeGhoti

1
@Creak Aslında cevabın o kısmı yanlıştı. Birim, dosya sisteminin blok boyutu değil. Klasik dublok gibi Unix komutları için , “blok” 512 bayt anlamına gelir. Bkz dosya blok boyutu - Stat ve ls arasındaki fark , blok boyutu ve küme boyutu arasındaki Fark
Gilles 'SO durdurma varlık kötülük'

3
"Herhangi bir dosya disk üzerinde çok sayıda blok tüketecektir." Genelde evet — dosya sisteminiz kuyruk paketlemesi kullanmadığı sürece . Ancak evet, bloklar dosya sisteminin temel birimidir (gerçek blok boyutu mutlaka kullanılan blok boyutuyla aynı hizaya du
Wildcard

3

Sorun duboyutu 512 bayt blok sayısı döndürür olmasıdır.

KB boyutunda olması için -kbunun yerine 1024 baytlık blokları kullanan seçeneği kullanabilirsiniz:

$ du -ks .                            
43351596    .
$ du -khs .
 41G    .
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.