00

結論から

  • Gzipは任意のデータを1個以上の連続したメンバーとして格納する可逆圧縮データ形式であり、ランダムアクセスと完全なファイルシステムメタデータには対応しません。
  • GZまたはGZIPファイルはGNU gzipなどのgzip互換展開ツールで開きます。Windowsではgzip対応を明記したローカルのアーカイブツールを選び、内容を展開します。macOSでは対応するGUIツールまたはGNU gzipを使います。スマートフォンではgzip対応のファイルアプリを選び、圧縮バイトを直接表示するのではなく展開操作を行います。準拠した展開ツールは1F 8Bと圧縮方式を確認し、任意フィールドを適切に読み飛ばして全メンバーを順番に処理します。完全性が重要ならCRC-32も検証します。
  • 入手元が不明なGZIPファイルは信頼しないでください。CRC-32は偶発的な破損の検出に役立ちますが、内容の安全性は証明しません。Gzipは悪意のある実行コードを含む任意のバイナリデータを格納でき、不正な入力ではフラグや長さに似たフィールドに任意の値が入る可能性があります。防御的に解析し、必要ならチェックサムを検証し、展開物を自動実行しないでください。
01

Gzip圧縮データ(.gz/.gzip)

GzipはJean-Loup GaillyとMark Adlerが、CPUの種類、OS、ファイルシステム、文字集合をまたいで圧縮データを交換するために設計した形式です。通常はDEFLATE圧縮を使います。各メンバーはヘッダー、任意の追加・名前・コメントフィールド、圧縮ブロック、CRC-32と展開後サイズの2^32を法とする値を含むトレーラーで構成されます。識別バイトは1F 8B、登録MIMEタイプはapplication/gzipです。

元ファイルは残す

GZIPを別のアーカイブ形式へ変換するには、まず全メンバーを展開し、復元されたバイトから変換先のアーカイブを作成します。gzipの展開自体は可逆ですが、元から保存されていないメタデータは復元できません。gzipは保護属性や所有者属性を表現せず、元ファイル名からディレクトリ部分を省き、小文字へ正規化する場合があります。

02

開き方

GZまたはGZIPファイルはGNU gzipなどのgzip互換展開ツールで開きます。Windowsではgzip対応を明記したローカルのアーカイブツールを選び、内容を展開します。macOSでは対応するGUIツールまたはGNU gzipを使います。スマートフォンではgzip対応のファイルアプリを選び、圧縮バイトを直接表示するのではなく展開操作を行います。準拠した展開ツールは1F 8Bと圧縮方式を確認し、任意フィールドを適切に読み飛ばして全メンバーを順番に処理します。完全性が重要ならCRC-32も検証します。

中身を見たいだけ

GZまたはGZIPファイルはGNU gzipなどのgzip互換展開ツールで開きます。Windowsではgzip対応を明記したローカルのアーカイブツールを選び、内容を展開します。macOSでは対応するGUIツールまたはGNU gzipを使います。スマートフォンではgzip対応のファイルアプリを選び、圧縮バイトを直接表示するのではなく展開操作を行います。準拠した展開ツールは1F 8Bと圧縮方式を確認し、任意フィールドを適切に読み飛ばして全メンバーを順番に処理します。完全性が重要ならCRC-32も検証します。

誰かに送りたい

GZIPを別のアーカイブ形式へ変換するには、まず全メンバーを展開し、復元されたバイトから変換先のアーカイブを作成します。gzipの展開自体は可逆ですが、元から保存されていないメタデータは復元できません。gzipは保護属性や所有者属性を表現せず、元ファイル名からディレクトリ部分を省き、小文字へ正規化する場合があります。

03

安全チェック

入手元が不明なGZIPファイルは信頼しないでください。CRC-32は偶発的な破損の検出に役立ちますが、内容の安全性は証明しません。Gzipは悪意のある実行コードを含む任意のバイナリデータを格納でき、不正な入力ではフラグや長さに似たフィールドに任意の値が入る可能性があります。防御的に解析し、必要ならチェックサムを検証し、展開物を自動実行しないでください。

こんなときは、いったん手を止める

送り主が分からない、拡張子が二重になっている、中身が拡張子と合わない——一つでも当てはまるなら、開く前に確かめてください。

04

変換するときは

GZIPを別のアーカイブ形式へ変換するには、まず全メンバーを展開し、復元されたバイトから変換先のアーカイブを作成します。gzipの展開自体は可逆ですが、元から保存されていないメタデータは復元できません。gzipは保護属性や所有者属性を表現せず、元ファイル名からディレクトリ部分を省き、小文字へ正規化する場合があります。

変換する前に

元ファイルではなくコピーを変換し、変換後に画質・メタデータ・レイアウトを元と見比べてください。

05

よくある質問

GZIPファイルとは何で、何に使う形式ですか?

異なるコンピューター環境や記憶環境の間でデータを交換するための可逆圧縮形式です。通常はDEFLATEを使い、1個以上のメンバーを連続して格納できます。

GZファイルを開いて展開するにはどうすればよいですか?

GNU gzipなどのgzip互換展開ツールを使います。ツールは1F 8Bと圧縮方式を確認し、任意フィールドを読み飛ばして全メンバーを順番に処理する必要があります。

WindowsでGZIPファイルを開くにはどうすればよいですか?

gzip対応を明記したWindows用ローカルアーカイブツールを選び、展開操作を行います。完全性が重要ならCRC-32を確認し、展開物を自動実行しないでください。

macOSでGZファイルを開くにはどうすればよいですか?

gzip互換のGUIツールまたはGNU gzipを使って展開します。Gzipはストリーム指向のため、通常はデータを順番に展開します。

スマホでGZIPファイルを展開するにはどうすればよいですか?

gzip対応を明記したモバイル用ファイルアプリを選び、展開機能を使います。種類が不明な展開ファイルは自動実行しないでください。

GZIPファイルが開かない、または破損と表示されるのはなぜですか?

先頭が1F 8Bか、圧縮方式が対応対象かを確認します。CRC-32不一致、途中で切れたメンバー、不正な任意フィールド、圧縮ブロックの損傷が原因になり、修復が難しい場合があります。

.gzと.gzipの違いは何で、どちらの拡張子を使うべきですか?

両方の拡張子がGzip圧縮データに使われますが、RFC 6713が登録している拡張子はgzです。登録拡張子が必要なら.gzを使い、それ以外は受け取り側の命名規則に従います。内部形式は1F 8Bで識別します。

GZIPをZIPへ変換する方法と、失われる可能性がある情報は何ですか?

gzipメンバーを展開し、復元バイトから変換先アーカイブを作ります。データバイトは可逆ですが、所有者・保護属性、名前から省かれたディレクトリ、小文字化前の表記は必ずしも復元できません。

メールやダウンロードで受け取ったGZIPファイルを展開しても安全ですか?

必ずしも安全ではありません。CRC-32は偶発的な破損の検出用であり、gzipには悪意のある実行コードを含む任意のバイナリを格納できます。防御的に解析し、自動実行を避けてください。

GZIPファイルは複数メンバーとランダムアクセスに対応しますか?

1個以上のメンバーを連続して格納できます。一方、展開後データの任意位置へ直接移動する機能はなく、通常はストリームとして処理します。

GZIPファイルをアップロードせずに確認できますか?

はい。端末上のローカルなgzip互換ツールでヘッダーを読み取るかメンバーを展開すれば、遠隔サービスへ送信せずに確認できます。

有効なGZIPヘッダーと正しいCRC-32があればデータは信頼できますか?

いいえ。1F 8Bは形式を識別し、CRC-32は偶発的な破損の検出に役立つだけです。内容の出所、意図、安全性は証明しません。

06

関連する形式

参考資料

RFC 1952: GZIP File Format Specification Version 4.3 · RFC Editor / IETF publication

RFC 6713: The application/zlib and application/gzip Media Types · RFC Editor / IETF publication

IANA Media Types Registry · Internet Assigned Numbers Authority