すべての異なるタイプの.tarアーカイブとの違いは何ですか?


16

誰が私にこれほど多くのアーカイブがどうなっているのか教えてもらえますか?

私は考えることができることを少なくとも5つがあります、.tar.tz.tar.gz.tar.bz2.tar.lz.tar.z

どのアプリケーションに最適ですか?同じファイルの非常に多くのバリエーションを作成するのはばかげているように見えますが、理由があると確信しています。

回答:


18

.gz.xz.bz2.7z.lz.z接尾辞は、ファイルが言った圧縮アルゴリズムで圧縮されていることを明確にするために使用されています。.tarファイルの使用はファイルに限定されず、initrd.gz(圧縮された初期ramdisk)またはmanual.txt.gz(圧縮されたテキストドキュメント)などのファイルも表示されます。また、file.tgzこれはgzipで圧縮されたtarballを示していることもわかります(などfile.tar.gz)。

ファイル拡張子は規則であり、必ずしもファイルの内容を説明するものではありません。処理しているファイルの種類を確認するには、fileコマンドを使用します。例:

$ file data.tar.gz
data.tar.gz: gzip compressed data, from Unix
$ gunzip -c data.tar.gz | file -
/dev/stdin: POSIX tar archive (GNU)

私の経験では、gzipで圧縮されたファイル(.gz)は最も一般的なものです。圧縮率と圧縮解除は高速ですが、圧縮率を向上させるアルゴリズムは他にもあります。


8

@Lekensteynの答えに加えて、この動作はDo one thing and it it well哲学に基づいていることを追加したいと思います - tarプログラムは複数のファイルを単一のストリーム(.tar拡張子付き)に入れるgzip方法を知っており、単一ファイル(.gz拡張子の追加)*。これらのツールを組み合わせることにより、複数のファイルを単一の.tag.gzファイルに圧縮するコマンドを作成できます。

このアプローチは非常に柔軟です-いくつかの標準的なUnixコマンドを組み合わせて、あらゆる種類のことを行うことができます。たとえば、ファイルを圧縮するためのより良いプログラムtarを作成する場合、.tar.mymegazipファイルを作成するために変更する必要はありません-代わりに、単にtarコンプレッサーに出力をパイプします。

同様に、tarSSHについては何も知りませんが、コマンドを組み合わせることにより、ファイルをアーカイブし、SSH経由でリモートマシンにアップロードし、そこでアーカイブ解除するスクリプトを作成できます。

これをzipUnixに由来しないコマンドと比較してください。ディレクトリ全体の圧縮、ファイルの暗号化、アーカイブの小さなzipファイルへの分割などのツールが組み込まれています。


(脚注)-はい、スイッチおよびスイッチtarを使用-zしてファイル自体をgzipまたはbzipでき-jます。これらは便宜上追加されたもので、GNU tarは実際に生成されるgzipbzip2、新しいプロセスとして作成されます。


例:コマンドtar c dir/ | gzip > dir.tar.gztar czf dir.tar.gz dir/コマンドは同じことをします。例えばtarSSHとと組み合わされるtar:(再度)tar cz Documents/ | ssh user@host 'tar xz:(rsyncの当量であろうrsync -a Documents user@host:
Lekensteyn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.