Tarは毎回異なるファイルを生成します。

Tarは毎回異なるファイルを生成します。

私はしばしばサーバーからローカルコンピュータに転送したい大きなディレクトリを持っています。私は通常、再帰scprsyncディレクトリ自体を使用するのではなく、最初にディレクトリを使用してからそれを送信します。targzip

最近これが実際に機能していることを確認したいので、同じソースディレクトリから独立して作成された2つのアーカイブtarに対してmd5sumを実行しました。gzip驚くべきことに、MD5ハッシュは異なります。これをもう一度やりましたが、いつも新しい価値でした。なぜこの結果が表示されますか?同じバージョンのGNU tarを使用して、tarとgzippedディレクトリはまったく同じ方法で作成されますか?同じでなければなりませんか?

わかりやすくするために、ソースディレクトリとターゲットディレクトリがあります。ターゲットディレクトリにはdir1とdir2があります。私は走っています:

tar -zcvf /destination/dir1/source.tar.gz source && md5sum /destination/dir1/source.tar.gz >> md5.txt

tar -zcvf /destination/dir2/source.tar.gz source && md5sum /destination/dir2/source.tar.gz >> md5.txt

これを行うたびに、md5sumに別の結果が表示されます。 Tarはエラーや警告を生成しません。

ベストアンサー1

見たらあなたが噛まれたようですね。gzipタイムスタンプ; これを防ぐには、次の手順を実行します。

GZIP=-n tar -zcvf ...

完全に再現可能なタールボールを入手するには、以下も適用する必要があります。ソート順の使用tar:

GZIP=-n tar --sort=name -zcvf ...

tarあなたのバージョンがそれをサポートしていない場合は、--sort代わりに以下を使用してください。

find source -print0 | LC_ALL=C sort -z | GZIP=-n tar --no-recursion --null -T - -zcvf ...

おすすめ記事