私のtarファイルが内容より大きいのはなぜですか?

私のtarファイルが内容より大きいのはなぜですか?

2つのファイルxaa、xab(splitコマンドを使用した結果)からtarファイルを再作成しました。 tarファイルのサイズは私が予想したサイズですが、解凍するとtarファイルサイズの一部に過ぎないフォルダが作成されます。私のコマンドの順序については、以下のターミナル出力を参照してください。残念ながら、元のtarファイルやフォルダがないので、今回はこのデータを回復する唯一の機会です。ファイルホイールでアーカイブを開くと、解凍後にコマンドラインに表示されているのと同じフォルダが表示されます。これは、表示されると予想されるファイルのサブセットにすぎません。なぜこれが起こるのかを提案できる人はいますか?

~> cat xa* > archive
~> file archive
archive: POSIX tar archive (GNU)
~> ls -la archive
-rw-r--r-- 1 hugo users 24471439360 Jun  1 18:50 archive
~> tar xf archive
~> cd repos
~/repos> du --max-depth 0 -h
83M .
~/repos> cd ../
~> tar cf newarchive repos
~> ls -la newarchive
-rw-r--r-- 1 hugo users 53288960 Jun  1 19:57 newarchive

答え1

tarファイルの終わりを示す指示が見つかるまで、tarファイルが抽出されます。物理的に、アーカイブは、2つの512 0バイトブロックで構成されるアーカイブエンドエントリで終わる一連のファイルエントリで構成されています。tarファイル形式の説明からここ

したがって、タグ付け後にアーカイブに抽出されなかったデータを含めることができます。

答え2

抽出したいディスクには、tarアーカイブ内のすべてのファイルとディレクトリを収容するのに十分な空き容量がないようです。df -k .ファイルを抽出したディレクトリを確認してください。

場合によっては、「リーク」を含むファイルをtarすると、元のファイルよりもはるかに大きいtarアーカイブが生成されます。 tarアーカイブファイルには、ファイルデータだけでなく、メタデータ、ファイル名、権限、所有権なども含まれます。したがって、tarアーカイブは常に元のファイルよりもわずかに大きいです。

関連情報