web-dev-qa-db-ja.com

tarは実際にファイルを圧縮しますか、それとも単にそれらをグループ化しますか?

tarは圧縮ユーティリティであると通常思っていましたが、よくわかりません。実際にファイルを圧縮しているのですか、それともISOファイルのように、ファイルを保持するファイルなのでしょうか。

41
TheDoctor

Tarはアーカイブツール(Tape ARchive)であり、ファイルとそのメタデータをまとめて収集し、1つのファイルを生成します。後でそのファイルを圧縮する場合は、gzip/bzip2/xzを使用できます。便宜上、tarはアーカイブを自動的に圧縮する引数を提供します。詳細は tar man page をご覧ください。

53
0xAF

tarはアーカイブを生成します。圧縮は別の機能です。 ただしtarを単独で使用すると、ファイルシステムのクラスターサイズよりも小さい多数の小さなファイルで使用すると、スペース使用量を削減できます。ファイルシステムが1 kbクラスターを使用する場合、1バイトを含むファイルでも1 kb(およびiノード)を消費します。 tarアーカイブには、このオーバーヘッドはありません。

ところで、ISOファイルは実際には「ファイルを保持するファイル」ではありません。これは実際にはファイルシステム全体(もともとはCDで使用するために設計されたもの)のイメージであり、そのため、構造はかなり複雑です。

18

オリジナルのUNIX tarコマンドはアーカイブを圧縮しませんでした。コメントで述べたように、Solaris tarは圧縮されません。 HP-UX、AIX、FWIWも同様です。慣例により、非圧縮アーカイブは.tarで終わります。

GNU/Linuxでは、GNU tarを取得します(GNU tarを他のUNIXシステムにインストールできます)。デフォルトでは圧縮されませんが、does-zを指定した場合、結果のアーカイブをgzip(同じくGNU)で圧縮します。gzip圧縮ファイルの従来のサフィックスは.gzですなので、末尾に.tar.gzが付いているtarball(tarアーカイブのスラング、通常は圧縮されていることを意味します)が表示されます。その末尾はtarが実行されたことを意味し、その後にtar cf - .|gzip -9v > archive.tar.gzなどのgzipが続きます。また、.tgzで終わるアーカイブも検索します(例:tar czf archive.tgz .)。

編集:www.linfo.org/tar.html は、GNU tarは単にgzipで圧縮するよりもはるかに多くの機能をサポートし、接尾辞は単純な規則ではないことを思い出しました。これらには組み込みのセマンティクスがあります。また、bzip2(-j for .bz2)と古い圧縮をサポートします(-Z for .Z)。次に、manページを確認したところ、-aがサフィックスに基づいて目的の圧縮方法を自動的にマッピングすることを思い出しました。

もう1つnit。 Linuxのtarのmanページにあるように、GNUはmanページではなく情報ページを生成するので、GNU tarについてすべて学ぶには、info tarを実行します。

3
tbc0

tarユーティリティは、[tar -z file name]の引数を指定するまで圧縮しません。

1
A J