質問: duとlsの表示の差 ファイルのパーミッション等が下記の場合が関係しているのか不明ですが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です、よろしくお願いします。
回答: 下記のように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 %