GZIPユーティリティが拡張機能に興味を持っているのはなぜですか?

GZIPユーティリティが拡張機能に興味を持っているのはなぜですか?

Gzipで圧縮されたファイルを解凍し、ファイル名を拡張子に変更する必要があるたびに拡張子を気にしないように見える.gz別の圧縮ユーティリティを試しました。zip, bzip2なぜこれが起こるのですかGzip?ファイルの種類を識別するためにマジック番号を確認したり、他の方法で確認したりすると便利ではありませんか?それともそうする目的がありますか?

答え1

私が理解しているところによると、一般的なアイデアは次のことを実行できることです。

gunzip *

マニュアルページに記載されているように、ファイル拡張子を最初のフィルタとして使用します。

gunzipコマンドラインからファイルのリストを取得し、名前が、、、、または.gz( 大文字-gz.z小文字 を無視)で終わり、正しいマジック番号で始まるすべてのファイルを元の拡張子のない圧縮されていないファイルに置き換えます。 特殊拡張子は、それぞれの略語としても認識されます。圧縮時に拡張子を持つファイルを切り捨てるのではなく、必要に応じて拡張子を使用してください。-z_zgunzip.tgz.taz.tar.gz.tar.Zgzip.tgz.tar

もう1つの注目すべき機能は、gunzip基本的に圧縮ファイルに保存されている名前を無視し、抽出するファイルからサフィックスを削除して名前が決定されたファイルに抽出することです。ファイルに既知のサフィックスがない場合、これはできません。 。

もちろん、マジックナンバーだけでフィルタリングすると、複数のファイルを処理するときに同様の効果がありますが、いくつかの違いがあります。

  • gzip現在、ユーザーが読み取れない拡張子でないファイルが必ずしもエラーを発生するわけではありません(ただし、現在は解凍しようとしなくてもファイルが開かれるgunzipためエラーが発生します)。
  • gzipすべてのファイルでマジックナンバーを確認する必要がないようにすることで、実装時に時間を節約できます。

gzipこれでこの方法で文書化されているので、簡単に変更することはできません。例えばそしてgunzip -l)。

関連情報