web-dev-qa-db-ja.com

コピーしたファイルのサイズが異なるのはなぜですか?

du -sコマンドを使用して、同じUbuntu 14.04システム上の2つのハードドライブ間でファイルをコピーすると、異なる値が得られます。 11.3 GBファイルの場合、オリジナルは11015704で、新しいものは11015628です。オリジナルにはext4があり、NTFSファイルシステムに転送されました。

ファイルサイズが異なるのはなぜですか?

3
rubytiger1

(最も役立つ)ファイルシステムは、ファイルを(ほぼ)固定サイズのブロックに保存します。つまり、ファイルシステムブロックの1つに未使用のバイトが残っているため、一般的なファイルは論理サイズよりも多くのスペースを占有します。ブロックサイズは、ファイルシステムの種類によって異なる可能性があります。また、ファイルシステムの作成中に構成することもできます。つまり、あるファイルシステム上の同じファイルのディスク使用量が別のファイルシステムで異なる場合があります。

デフォルトでは、duは、ファイルがドライブで占有する実際のスペース(つまり、占有ブロック数にブロックサイズを掛けたもの)を報告します。

duに(集合的な)論理ファイルサイズを報告させる場合は、--apparent-sizeオプション(または-bを意味する--apparent-size)を使用する必要があります。

du(1) manual から:

--apparent-size –ディスク使用量ではなく、見かけのサイズを出力します。通常、見かけのサイズは小さくなりますが、(「スパース」)ファイルの穴、内部断片化、間接ブロックなどにより大きくなる場合があります

6
David Foerster