次の結果が得られる理由がわかりません。
ls -l
特定のファイル(HISTORY)のサイズが「581944」であることがわかります。
$ ls -l HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 581944 Feb 22 10:59 HISTORY
ls -s
それは「572」だと言う:
$ ls -s HISTORY
572 HISTORY
当然、値に同等のスケールを使用する必要があります。したがって、最初に--block-size 1
in ls -l
を使用すると、以前と同じ結果が得られることを確認します。
$ ls -l --block-size 1 HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 581944 Feb 22 10:59 HISTORY
次にls -s
、同じスケールで値を取得するために同じことを行います:
$ ls -s --block-size 1 HISTORY
585728 HISTORY
異なる結果!581944≠585728。
を使用して-k
、逆の方法で比較可能な値を生成しようとしましたが、次のようになります:
$ ls -lk HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 569 Feb 22 10:59 HISTORY
$ ls -sk HISTORY
572 HISTORY
繰り返しますが、異なる結果、569≠572です。
--siを指定して、両方のオプションが同じスケールを使用していることを確認しましたが、役に立ちませんでした。
$ ls -lk --si HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 582k Feb 22 10:59 HISTORY
$ ls -sk --si HISTORY
586k HISTORY
...もう一度、異なる値:582k≠586k。
私はウェブを検索しようとしましたが、私が見つけることができたのは関連性があると思われる唯一のものはこれでした:
一部のファイルには「穴」があるため、
ls -s
(...)でリストされた使用量はでリストされたファイルサイズよりも小さくなりますls -l
。
(私の結果では、逆のことが起こることに注意してください:ls -s
サイズを返しますがls -l
、小さくはありません。)
一方、このページでは
Unixファイルホールを検出するエレガントな方法はありません。
それでは、この矛盾にどのように対処できますか?これらの値のどれが正しいと考えられますか?これはおそらくバグls
ですか?
ls -s
数えないのですか?