web-dev-qa-db-ja.com

.tar.bz2アーカイブを作成するためにtarとbzip2を使用しますか?

tar.tar.bz2ファイルを作成できることを読みました。この間ずっと、私はこれを行うためにtar + bzip2を使用していました。

アーカイブを作成するためにtarを使用することとbzip2を使用することの間に違いがあるかどうか疑問に思いましたか?

また、なぜ同じことをする2つのことがあるのですか?

ありがとう!

6
Jeffrey Jose

GNU tarは--bzip2オプションをサポートしています。これにより、結果のファイルをディスクに書き出す前に、bzip2を介してtarファイルをストリーミングできます。コマンドラインオプションでサポートされているすべてのtar圧縮は、ストリーミングされたデータのチャンクで動作します。これは平均的なケースではそれほど重要ではありませんが、外部圧縮では、同じアルゴリズムでもより優れた圧縮を提供できる場合があります。

たとえば、-bzip2を使用すると、事前定義された圧縮レベルが使用されますが、非圧縮のtarballでbzip2を実行すると、さまざまな圧縮パラメーターを調整して、より厳密な圧縮を実現できます。さらに、tarball全体を入力に使用できる操作では、ストリーミングで利用できる標準サイズのチャンクを超える圧縮の機会を利用できる可能性があります。良い例はlrzipです。これは、現在のデータチャンク内の冗長性だけでなく、tarアーカイブ全体の冗長性を利用できます。

スペースが極端に貴重でない限り、簡単にするために、通常、組み込みの圧縮オプションを使用することをお勧めします。組み込みのオプションは、高レベルの利便性と、速度と圧縮の間の合理的なトレードオフを提供します。ただし、マイレージは間違いなく異なる場合があります。

7
CodeGnome

Tarを使用してアーカイブを作成するのとbzip2を使用するのに違いがあるのだろうかと思っていました。

Bzip2は圧縮ツールです...そして非常に優れたツールです。

tarはアーカイブ(ストレージ)ツールです...おそらく最も成功した堅牢なツールです。

また、なぜ同じことをする2つのことがあるのですか?

Tarはbzipよりも前のものであり、元のZipでさえあると思います。

限られた場合にのみ「同じこと」をします。

おそらくタールが何であるかを完全に理解していないのですか?

Tarはアーカイブ用(Tape Archiver)であり、ファイルのグロブを圧縮するだけではありません。

<quote man page>
DESCRIPTION
     Tar stores and extracts files from a tape or disk archive.
 </quote>

したがって、アーカイブの内容を追加、抽出、減算、更新できます。 (多くの場合、開梱せずに)

64Kが大量のメモリであり、ストリーミング(文字ごと)ベースのストレージが標準であった、はるか遠くの英雄的な過去に進化したその古典的なツール。 (磁気テープのように)。

tarは、一部の(名目上は人間の)オペレーターにテープを交換するように指示したり、多くのメートルの「テープ」の正しい範囲と場所に前後にスプールしたりすることができます。

この機能はすべて、実際のハードウェアが長い間使用されていなくても、引き続き有用です。特にバックアップの世界では。

一般に、アーカイブされたファイルシステムの構造と状態を認識しており、実際のライブファイルシステムのように変更したり、そこから読み取ったりすることができます。 (もちろん、圧縮され、記録/登録され、どこかでリスされます)

rsyncには、その機能の一部(多く)がありますが、差分の周りに巧妙なアルゴリズムがあります。

paxも参照してください。

Bzipは優れたツールであり、ほとんどのケースでは、Zip/gzipよりも大幅に圧縮できます。

汎用の圧縮ツールとして、効率的で非常に堅牢です。焦点は圧縮です。

時間の経過とともに、圧縮ファイルはアーカイブと呼ばれるようになりました。これは、ほとんどのファイルに共通しているためです。

ああ、そして最後に、tarにはネイティブの基本的な(展開可能な)圧縮もあります。 -zまたは-jスイッチを使用して、代わりにその特定の圧縮アルゴリズムを使用することを選択します。 (うーん、またはおそらく同様に?)

gzip tar bzip2 paxrsyncのmanページにアクセスしてください:)

tarドキュメントをスクロールするだけでアイデアが得られます。

4
petergozz