スパースファイルのディレクトリがあります(du
はこれらのファイルの1つに対して240Mを返します; ls
は960Mを返します)。
これらのファイルの1つをS3にコピーすると、最終的に960M全体がアップロードされ、S3からダウンロードすると、du
は960M全体を返すようになります。
gzip
pingを試してみました。これにより、アップロード/ダウンロードのサイズが小さくなります。ただし、抽出されたサイズはまだ960Mです(du
を使用)。
これらのファイルをスパースファイルに戻す方法はありますか?
Util-linuxの最新バージョンを指定すると、fallocate --Dig-holes
を使用してこれを行うことができます。
または、cp --sparse=always
は、コピー先としてスパースファイルを作成します(その後、元のファイルの上に移動できます)。
スパースファイルは、GNU tarのtar -S
またはtar --sparse
オプションを使用してアーカイブできます。たとえば、圧縮も必要な場合はtar -czSf foo.tar.gz foo
、またはそうでない場合はtar -cSf foo.tar foo
。