ファイル(vdi)は、分割後のcat操作後のサイズが2倍になります。

ファイル(vdi)は、分割後のcat操作後のサイズが2倍になります。

7GBのvdiファイルを分割し、catコマンドを使用して結合しました。ファイルはVBoxで正常に動作しますが、再結合すると14GBになります。正確な作業は次のとおりです。

$ split -- bytes=2000M file.vdi /locationX/prefix

別の機械に移動してください...

$ cat prefix* > /locationY/file.vdi

そうしたら大きさが倍になりました。

どうしたの?

答え1

file.vdiおそらくスパースファイル。これは、仮想マシンのディスクイメージで非常に一般的です。記録されていない部分は、ファイル内のスペースを占有しない穴として残ります。ソースファイルの長さがディスク使用量と一致していることを確認することでこれを確認できます。

ls -l file.vdi; du file.dvi

ls -l14GB(実際のファイルの長さ)が報告されると予想しましたが、du7GB(ディスクスペース)が報告されました。これは、画像の約半分が記録されていないことを意味する。

スパースファイルは、システムで実行される基本的な圧縮形式です。ファイルの脆弱性は、アプリケーションが脆弱性を読み取ったときに表示される多数のヌルバイトを含むと定義されます。したがってsplit、(または、またはcatcpでもddtar多くのnullバイトが読み取られ、出力でスペースを占めます。

目的地のスペースを節約したい場合は、次のようにしてください。ファイルを再稀にします。。これはスペースだけを節約し、パフォーマンスは向上しません。

関連情報