Aşağıdaki sonuçları neden aldığımı çözemiyorum:
ls -l
Bana belirli bir dosyanın boyutunu (TARİHİ) "581944" olduğunu söyler:
$ ls -l HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 581944 Feb 22 10:59 HISTORY
ls -s
"572" olduğunu söylüyor:
$ ls -s HISTORY
572 HISTORY
Açıkça değerleri karşılaştırılabilir bir ölçek kullanmam gerekiyor. Kullanarak bu nedenle ilk önce onayla --block-size 1
içinde ls -l
bana daha önce olduğu gibi aynı sonucu verir:
$ ls -l --block-size 1 HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 581944 Feb 22 10:59 HISTORY
Sonra ls -s
aynı ölçekte bir değer elde etmek için aynısını yapıyorum :
$ ls -s --block-size 1 HISTORY
585728 HISTORY
Farklı sonuçlar! 581944 ≠ 585728 .
Başka yerlerde karşılaştırılabilir değerler üretmeyi denedim, onu kullandım -k
, ancak alıyorum:
$ ls -lk HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 569 Feb 22 10:59 HISTORY
$ ls -sk HISTORY
572 HISTORY
Yine farklı sonuçlar, 569 ≠ 572 .
Her iki seçeneğin de aynı ölçeği kullandığından emin olmak için --si belirtmeyi denedim, boşuna:
$ ls -lk --si HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 582k Feb 22 10:59 HISTORY
$ ls -sk --si HISTORY
586k HISTORY
... tekrar, farklı değerler: 582k ≠ 586k .
Ben web'de arama denedim ama alakalı gibiydi bulabildiğim tek şeydi bu :
Bazı dosyalarda "delikler" vardır, bu nedenle
ls -s
(...) tarafından listelenen kullanım, tarafından listelenen dosya boyutundan daha azdırls -l
. "
(sonuçlarımda bunun tersinin gerçekleştiğini unutmayın: ls -s
boyutları daha ls -l
küçük değil, daha büyükse döndürür .)
Bu arada, bu sayfa diyor ki
Unix dosya deliklerini tespit etmenin zarif bir yolu yoktur.
Peki bu tutarsızlıkla nasıl başa çıkabilirim? Bu değerlerden hangisi doğru kabul edilebilir? Bu muhtemelen bir hata olabilir ls
mi?
ls -s
saymıyorsun?