dポイントプレゼントキャンペーン実施中!

ファイルのパーミッション等が下記の場合が関係しているのか不明ですがDUコマンドとLSコマンドで示されるDiskの使用量が一致しないのですが、理由を教えていただけませんか?
% cd test001
% ls -l
total 944
-rw-r-lr-- 1 own grp 524288000 Oct 15 09:12 File0
-rw-r-lr-- 1 own grp 524288000 Oct 15 09:11 File1
%
% du
946 .
% cd ../test002
% ls -l
total 2049056
-rw-r-lr-- 1 own grp 524288000 Oct 17 14:12 File0
-rw-r-lr-- 1 own grp 524288000 Oct 12 21:16 File1
%
% du
2049056 .
DUの結果とLS -l で示される結果は一致しているのですが、ファイルサイズ(ls -lで示される値)の合計と一致しないのです。
OSはSolaris8です、よろしくお願いします。

A 回答 (3件)

du で表示されるのは「ディスク上で実際に使っている量」なので, ファイルサイズと一致しないことがあります. 例えば「先頭の 1バ

イトと 100Mバイト目にだけデータを書き込んだファイル」を作った場合, ディスク上には先頭の 1バイト (を含むブロック) と 100Mバイト目 (を含むブロック) だけを確保し, その他はディスク上の領域としては確保しないことがあります. このような場合, ファイルサイズとしては 100MB (+1B) となりますがディスク上の使用量は 2ブロックということになります.
    • good
    • 0
この回答へのお礼

有難うございます、良く理解できました。

お礼日時:2005/10/21 16:46

下記のようにlsコマンドに-sオプションを指定して実行すると各ファイルで使用しているブロック数(512バイト単位)が表示されますのでそこでどのくらいブロックを使用しているか確認されたたいいと思います。


また、親ディレクトリ(..)を除いた分を合計するとたぶんduの表示結果と同じになると思います。

例)
% ls -als
合計 54
2 drwxr-xr-x 2 user other 512 10月 20日 15:41 .
2 drwxr-xr-x 20 user other 1024 10月 20日 15:37 ..
48 -rw-r--r-- 1 user other 10485761 10月 18日 17:26 test.dat
2 -rw-r--r-- 1 user other 2 10月 20日 15:41 test2.dat
% du
52 .
% bc
2 + 48 + 2
52
%

※lsコマンドでなくて下記のようにduコマンドでも同様に使用しているブロック数が分かります。

% du -s * ← 512バイト単位
48 test.dat
2 test2.dat
% du -ks * ← KB単位
24 test.dat
1 test2.dat
%
    • good
    • 0
この回答へのお礼

良く理解できました、有難うございます。

お礼日時:2005/10/21 16:41

#1の方がお書きのような特殊な作り方をしたファイルじゃなければ、表示されていないファイルがあるのでは?


% cd test001
% ls -lA
でどうですか?
    • good
    • 0
この回答へのお礼

>#1の方がお書きのような特殊な作り方をしたファイルじゃなければ
ファイルを作成するアプリを私が作成していないのでなんともいえませんが・・
確かにファイルのモード -rw-r-lr-- の r-l が気になっているんです。
しかし、、皆さんの回答で余り関係ないと判断しています。
有難うございます。

お礼日時:2005/10/21 16:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!