個々のファイルを圧縮する必要があるのはなぜですか?

個々のファイルを圧縮する必要があるのはなぜですか?

当社はローカル開発データベースのスナップショットをファイルとしてダウンロードしますdb.dump.tar.gz。圧縮は意味がありますが、タールボールには1つのファイル(db.dump)のみが含まれています。

個々のファイルをアーカイブする理由は何ですか、それとも.tar.gz一般的な慣用語ですか?なぜできないのです.gzか?

答え1

.tar.gz代わりに使用すると良い点.gz

  • tar。より多くのメタデータ(UNIX権限など)を保存しますgzip
  • 複数のファイルを保存するために設定を簡単に拡張できます。
  • .tar.gzファイルが一般的です。圧縮のみ一部のユーザーにとっては、マニュアルが混乱する可能性があります。 (より メルボルンのレビュー)

使いやすいオーバーヘッドもほとんどありませんtar

実際に必要でない場合は、単一のファイルをtaringすることはまだ推奨されていません。圧縮された個々のファイルに直接アクセスするための便利なツールがたくさんあります(例:zcatなどzgrepもありますbzip2xz

答え2

実際に質問の半分だけを尋ねることです。もう一つの質問は、「なぜtarファイルをgzipする必要があるのですか?」です。答えは、gzipファイルを小さくする以上のものです(ほとんどの場合)。

tar:

  • ファイル名などの保存メタデータ:モード、所有者ID、グループID、ファイルサイズ、変更時間
  • チェックサムの保存(ヘッダのみ)

gzip:

  • 元のファイル名を保存できますが、これはオプションです。
  • 生データのCRC-32チェックサム
  • ファイルを圧縮する

あなただけtarが確信できませんデータ破損していません。gzipユーザー/グループID、変更時刻、元のファイル名は回復できません。

この組み合わせは、単一のコマンド/フォーマットが提供できるよりも多くの機能を提供します。機能が互いに補完されるため

答え3

gzipで圧縮されたテキストファイルのみを使用すると、大きな利点があります。lessつまり、zgrepzcat

答え4

場合によっては、使用を重視する重要な違いがありますtar。 @jofelが回答で述べた「メタデータ」に加えて、tar 録音ファイル名アーカイブから。抽出してみると、元のファイル名を取得アーカイブの名前は何でも構いません。

あなたの場合、tarアーカイブとここに含まれるファイルには関連する名前がありますが、db.dump.tar.gztardb.tarファイルの名前を20-Apr-16.dump.tgz他の名前に変更するとします。解凍tar xvfzするとそこにありますdb.dump。比較20-Apr-16.dump.gzのため20-Apr-16.dump。アーカイブには、tar抽出されたファイルをサブディレクトリに配置する相対パス名も含めることができます。

ユースケースによって、この種のファイル名の永続性が必要かどうかが必要です。求める、または実際には望ましくありません。しかし、1つの明確な点は、圧縮されているかどうかに関係なく、tarアーカイブが通常のファイルとは異なる方法で転送されることです。

関連情報