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

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

コメント

回答

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

コメント

  • 少し答えの明確化。これらの追加の圧縮引数を提供するのはGNUtarです。たとえば、Solaristarは圧縮の引数を提供しません。
  • ああ、それが'がthing.tar.7z
  • BSD tarは圧縮の引数も提供しますが、zのみを受け入れ、拡張子に基づいて圧縮方法を決定しますが、GNUtarには個別の<さまざまな圧縮方法のdivid = "426907b8e8">

引数。

  • BSD tarのマンページを読んだところ、間違っていたことがわかりました。BSDtarは個別のはGNUtarと同じように圧縮します。ただし、解凍時に圧縮を自動的に検出しますが、GNUtarはzZjJも予期します。
  • @wingedsubmariner:no;現代風のGNU tarは、-zZjJオプションを必要とせずに自動的に解凍します。
  • 回答

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

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

    コメント

    • 実際には、空のファイルは1kbを消費しません。 1-1023バイトのファイルはそうなります。
    • @psusiしたがって、1-1023バイトのファイルの場合は常に1024を消費するため、1023-1バイトが無駄になります。

    回答

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

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

    編集: www.linfo.org/tar.html は、GNU tarが単にgzipで圧縮するよりもはるかに多くの機能をサポートしていること、そして接尾辞が単なる慣習以上のものであることを思い出させました。それらには組み込みのセマンティクスがあります。また、bzip2(.bz2の場合は-j)およびivの場合は-Zもサポートします。 id = “0ecdb62935″>

    )。次に、マニュアルページを見て、-aがサフィックスに基づいて目的の圧縮方法を自動的にマップすることを思い出しました。

    もう1つ。 Linux tarのmanページにあるように、GNUはmanページではなく情報ページを生成するため、GNU tarの詳細については、info tarを実行してください。

    コメント

    • GNUtarはまだ'圧縮を処理せず、gzip、bzip2、compressなどとの間でパイプするだけです。
    • ソースを確認しました。 GNU tarは圧縮を処理します!実装は、コードの再利用と健全なUNIXユーザースペースアーキテクチャの原則を利用します。 "パイプだけ"は、圧縮がツールに緊密に統合されている方法を過小評価しています。それがフォークヘルパープログラムに起こるという事実は専門的です。 "パイプだけを防御したい場合は、"次にファイル名と行番号を引用し、'コミュニティがどちらの側を取っているかを確認します。
    • そのソースを確認できるようになるまでに数日かかります。

    回答

    tarユーティリティは、引数を指定するまで圧縮されません[tar-zファイル名]。

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です