一般的なツールに統合されているため、少なくとも4つの別々のジョブが混同されることがよくあります。
- アーカイブ:可能な限り多くのものを保持しながら、複数のファイル(メタデータを含む)を単一のファイルに結合する機能。Linux / Unixの世界では、アーカイブは伝統的にTARファイル形式で行われます。
- 圧縮:バイナリデータのストリームのサイズをロスレスに最小化する機能。Linux / Unixの世界では、これは伝統的にGZipとBZip2によって行われます。
- 暗号化:キーでデータをスクランブルする機能
- チェックサム:エラーを検出(および場合によっては修正)する機能。
.tar.gzと.tar.bzの遍在性は、すべてを実行する単一のツールよりも、単一のジョブを適切に実行する小さなツールのUnix哲学に対応しています。TARファイル形式は圧縮または暗号化をサポートしていませんが、任意のコンプレッサー(.tar.zipまたは.tar.7zを含む)でさらに圧縮できます。GZipとBZip2の仕事は、単にファイルストリームを別のファイルストリームに圧縮することです。圧縮レイヤーは、メタデータまたは暗号化またはチェックサムを保持する方法を気にする必要はありません。しかし、時間の経過tar
とともに、コンプレッサーをより便利に使用するために、プログラムにいくつかのショートカットが作成されました。
zipおよび7zファイル形式では、これらの個別のジョブは単一のスーパーファイル形式の単一のプログラムによって実行されます。
これらのすべてが移植可能な形式であるにもかかわらず、なぜ上記の傾向が維持されるように見えるのですか?特定のプラットフォームで特定のアーカイブ形式を使用することに特別な利点はありますか?
それが行われた方法なので、プログラムのソースコードは伝統的に.tar.gzまたは.tar.bz2として配布されます。ファイルの許可、変更時間などを保存することは、プログラミングに使用されるさまざまなツール(例:make)にとって重要であるためです
個別のアーカイブと圧縮のステップは長年にわたってうまく機能しており、アーカイブと圧縮を自由に組み合わせて一致させることができるという明確な利点があり、その欠点(2ステップ圧縮プロセス)は、よりスマートなツールを開発することで簡単に回避できます(最新のLinux圧縮プログラムのほとんどは、.tar.gzまたは.tar.bz2に直接圧縮し、中間ステップを隠します)。
他のファイル形式に移行する強い理由はありません。新しいコンプレッサーは、伝統を破ることを正当化するための圧縮率が大幅に向上しておらず、tarはすべてを十分に保存できます。