GNU/Linux >> Linux の 問題 >  >> Linux

tar 圧縮と zip 圧縮のどちらがより効率的ですか? tar と zip の違いは何ですか?

tar gzip などの圧縮プログラムを組み合わせない限り、複数のファイルから 1 つのファイルを作成するだけで、圧縮は行われません。 または bzip2 (これは tar 内から呼び出すことができます -z を使用して または -j オプション)。 zip 1 つのプログラムでアーカイブと圧縮の両方を組み合わせます。


タール

  • 「Tape ARchive」という、端から端まで読むことを前提としています。 (コマンドの時代は...)
  • 圧縮は行いませんが、結果のストリーム全体をパイプすることで圧縮できます。 gzip および bzip2 (-z または -j で内部的に実行)
  • UNIX ファイル属性を保存します :uid、gid、パーミッション (特に実行可能ファイル)。デフォルトはディストリビューションによって異なり、オプションで切り替えることができます。

圧縮

  • MSDOS 属性を保存します . (アーカイブ、読み取り専用、非表示、システム)
  • 各ファイルを圧縮し、アーカイブに追加します
  • ファイルの末尾にファイル テーブルを含めます
  • 前者の 2 つの結果として、必要なファイルの正確な部分のみを読み取ることができます。

zip がファイルを個別に圧縮するという事実は、圧縮率に影響を与えます。特に、多くの小さな同様のファイルでは顕著です。

(少なくとも、これは 10 年前には正確でした。)


tar は Zip よりもはるかに多くのメタデータを保持します。比較を参照してください (少し古くなっています):

(クリックして拡大)

Tar は 65% のテストに合格しますが、Zip は 17% しか合格しません。 BSD ライセンスの下で github でテスト スイートを利用できるようにしたので、Mac を使用している場合は自分で試すことができます。 Linux の場合、メタデータがあるかどうかわからないため、これらのテストは関係ない可能性があります。


Linux
  1. .exrcと.vimrcの違いは?

  2. ファイルへの書き込みとマップされたメモリへの書き込みの違いは何ですか?

  3. Cのstrtok_rとstrtok_sの違いは何ですか?

  1. adduser と useradd の違いは何ですか?

  2. ls と l はどう違いますか?

  3. Linux の「fallocate --dig-holes」と「fallocate --punch-hole」の違いは何ですか?

  1. fsync と syncfs の違いは何ですか?

  2. $(CC) と $CC の違いは何ですか?

  3. unlink と rm の違いは何ですか?