分割ファイルを元の圧縮ファイルとマージする

分割ファイルを元の圧縮ファイルとマージする

Ubuntu 22.04では、この2つの方法でarchive_tgz sha256が異なることがわかりました。

tar czf /a/archive_tgz . 

tar czf /dev/stdout . | split -d -b 200M - /a/archive. && cat /a/archive.* > /a/archive_tgz

これは正常ですか、それともファイルのブロックサイズに関連していますか?違いは何ですか?

ベストアンサー1

違いは修正時間の.変更にあります。tarファイルに含まれています。tar czf archive.tgz .更新.)。

tar czf /dev/stdout . | sha256sum

そして

tar czf archive.tgz .
sha256sum archive.tgz

別のハッシュが提供されました(none split)。また警告しますtar: .: file changed as we read it

別のディレクトリに書き込むと.変更時間は変わらないため、同じハッシュ値が提供されます。

tar czf ../archive.tgz .
sha256sum ../archive.tgz

splitハッシュを比較して、これが問題ではないことを確認することもできます。

tar czf single-archive.tgz .

split -d -b 200M - single-archive.tgz archive. && cat archive.* >archive-combined.tgz

md5sum single-archive.tgz
md5sum archive-combined.tgz

おすすめ記事