web-dev-qa-db-ja.com

.tar.gzと.gz、または.tar.7zと.7zの違いは何ですか?

最近、多くのデータをバックアップしていますが、.gzまたは.tar.gz、または.7z.tar.7zなどとしてファイルを保存できることに気付きました。通常のものと.tar.*バリアントの違いは何ですか?バックアップを作成するときにアドバイスするのはどれですか?

157
Exeleration-G

Windowsのバックグラウンドから来ている場合、Zipおよびrar形式に精通している可能性があります。これらは、一緒に圧縮された複数のファイルのアーカイブです。

UnixおよびUnixに似たシステム(Ubuntuなど)では、アーカイブと圧縮は分離されています。

tarは、複数のファイルを単一の(tar)ファイルに入れます。

gzipは、1つのファイルを圧縮します(のみ)。

したがって、圧縮アーカイブを取得するには、2つを組み合わせて、最初にtarまたはpaxを使用してすべてのファイルを単一のファイル(archive.tar)に取得し、次にgzip it(archive.tar .gz)。圧縮する必要があるファイル(notes.txt)が1つしかない場合、tarは不要なので、gzip notes.txtを実行するだけでnotes.txt.gzになります。 compressbzip2xzなど、gzipと同じように機能する他のタイプの圧縮もあります(もちろん、異なるタイプの圧縮を使用することは別として)

182
geirha

探しているものに依存します...圧縮またはアーカイブ?

アーカイブについて話すとき、権限、ディレクトリ構造などを保持することを意味します...

圧縮ではそのほとんどが無視され、ファイルが小さなパッケージに入れられるだけです。

ファイルのアクセス許可を保持するには、tarを使用します。

tar cpvf backup.tar folder

Pフラグはファイル許可を保存します。 gzip圧縮にはzフラグを使用し、bzip圧縮にはjフラグを使用します。

tar czpvf backup.tar.gz folder #backup.tgz is acceptable as well
tar cjpvf backup.tar.bz2 folder #backup.tbz2 works too

Tarファイルが必要な場合は、Pフラグを使用してtarを「更新」パッケージ化できます。

tar cpPvf backup.tar folder

次に、更新するには、「c」を「u」に置き換えます。展開するときは、「k」を使用して既存のファイルを保存できます。

tar upPvf backup.tar folder #updating a tar file
tar xpPkvf backup.tar #extracting a tar with permissions(p) and not extracting(k) files that exist on disk already

Pフラグはファイルをフルパスで保存するため、-/ home/username vs home/username(先頭のスラッシュに注意してください)。

7z圧縮は、より高い圧縮を提供しますが、ファイルの所有権、アクセス権などを保持しません。Rzipは、7zと同等の圧縮を提供するもう1つの圧縮ユーティリティです。

Backup.tar.7zファイルは7zファイルで圧縮された単なるtarファイル(アクセス許可付き)であると思いますが、7zではファイルメタデータをダンプできないため、圧縮がほとんど発生していなくても驚かないでしょう。 7zには、ファイルメタデータを除外する機能があります(もちろん、他の機能の中でも)優れた圧縮を提供できます。

圧縮も完全にデータ型に依存します。一部のファイルは、他の方法(.mp3、.jpg、.tiff/with lzma、.rpmなど)で既に圧縮されている可能性があるため、うまく圧縮されません。

49
SaultDon

gzipまたはbzip2はfile systemを認識しません-ファイル名、ディレクトリ、またはツリー構造。入力ストリームを圧縮し、結果を出力するだけです。 gzipやbzip2だけでディレクトリをアーカイブすることはできないため、通常はtarと組み合わせます。

tar(archiver)-ファイル構造のみをアーカイブします。 gzip、bzip2(compressor)-入力を圧縮するだけです。

この戦略は 'do one thing well' Unix哲学から来たと思います。タールはうまく機能しますか?そのままにしておきます。 gzipよりも高い圧縮率が必要ですか?これはbzip2または7Zipです。

11
Mait

さまざまなスタイルの圧縮、tar自体は単純にアーカイブされます(圧縮はほとんどまたはまったくありません)。 tar.gzはtarアーカイブですが、コンテンツはgzip(中程度の圧縮)で圧縮されているため、.gzとtar.7zは7Zipを使用して圧縮されます(通常は超高圧縮)

バックアップ時には、tar.7zをお勧めします。tar.7zは圧縮率が最も高く、スペースを節約できますが、追加のプログラム(7Zip)を使用します。 .tar.gzはより大きなファイルになり、同じ仕事をします。bzip(.tar.bz/bz2)を使用することもできますが、gzipまたは7Zipを使用するのに適しているかどうかはわかりません

8
MuffinStateWide

通常、*。tarファイルは単にtarプログラムによって作成されたtarファイル、*。gzプログラムはgzipによって作成され、*。tar.gz(* .tgzもあります)はgzipされたtarファイル、および* .7zは7Zipによって作成されます。

ただし、Linux/Unixでは、ファイルを好きなように名前を付けることができるため、ファイルの作成者の裁量に完全に委ねられています。

4
G. He

Tar(Tape Archiver)は伝統的にUnix/Linuxのコンテナとして使用され、ファイルを移動用にパッケージ化します。ファイル構造をパッケージ化し、ファイル属性を維持しますが、ファイルを圧縮しません。

圧縮プログラムはファイルを圧縮して小さくしますが、複数のファイルを処理できない場合や、Linuxに必要なファイル属性を処理できない場合があります。 tarはすでに存在し、十分にサポートされているため、アーカイブプログラムがこの機能を複製する理由はありません。プラットフォーム固有(つまり、WindowsとLinuxで異なります)です。また、異なる圧縮プログラムは異なるタイプのファイルで異なる動作をする場合があるため、複数のファイルを選択することが望ましいです。

3
Marty Fried