ディレクトリがあり、~/D
そのサイズを探したいです。ただし、実行すると、個々のファイルが増えていることが明らかになりますdu -c ~/D/*
。実際に個々のファイルをチェックするとエラーも発生します。出力の最後の行は次のようになります。26880
ls -l ~/D
26880
du
du ~/D/*
256 /home/me/D/lastFile.bin
そして最後の行ls -l ~/D
は
-rw-r--r-- 1 me myGroup 3124 Aug 24 21:58 lastFile.bin
これは256
明らかに同じではありません3124
。これがバイナリファイルであることは重要ですか?
編集する:du
これは間の違いに関する質問と重複しませんdf
。df
この場合、私には何も提供していないようです。
編集する: stat -c %s ~/D/lastFile.bin
出力と一致ls -l
ベストアンサー1
~からマニュアルページ:
Display values are in units of the first available SIZE from --block-size, and the DU_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables. Otherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set).
したがって、256kB(またはPOSIX的に正しい場合は128kB)は、複数の3124バイトファイルに十分なスペースを提供します。
GNUを使用すると、du
この-B
オプションを使用して出力の単位サイズを設定できます。デフォルトの印刷サイズであるバイト単位のサイズを取得するには、または-B1
(-b
equals)を使用します。-B1 --apparent-size
ls
実際に見られる不一致は、おそらくファイルシステムの記録の異常な点です。少なくともほとんどは、ファイルがブロック全体に割り当てられるという事実です。たとえば、ext4
ファイルシステムでは、100000
-byteファイルはバイトブロックとして割り当てられている102400
ため、実際にバイトを占有します。4096
これがdu
私のシステムに現れるものです。
--apparent-size
du
オーバーヘッドではなく、ファイルのデータサイズのみが計算されます。