XZ を GZ に変換

ここで XZ を GZ に変換できます。無料、アカウント不要です。ファイルを上の枠に落とせば、数秒で結果がダウンロードできる状態になります。 ファイルは暗号化されて当方のサーバーへ送られ、そこで変換され、処理が終わり次第削除されます

  • 処理される場所 当サイトのサーバー上です。この処理に必要なソフトウェアは、ブラウザーでは動かせません。
  • 可逆 何も捨てられません。GZはXZが持っていたものをそのまま保持します。
  • ファイルサイズの上限 1ファイルあたり25MBまで。無料、アカウント不要です。
  • 知っておきたいこと ファイルは 1 バイトも変わらずに出てきます。失われるのは、容れ物が中身として持っていたものではなく、中身について持っていたもの——パスワードや、形式によっては元のアクセス権と日時です。

一度に100ファイルまで。フォーマットが混ざっていても構いません。

自分が作ったのではない .tar.xz を配り直す

ここに来る人の多くはそのファイルを自分で作ったわけではありません。上流のプロジェクトが公開した .tar.xz を、社内のミラー、共有ドライブ、扱えない相手向けのダウンロードリンクとして配り直す必要があります。上流は技術的な読者向けに帯域を最適化しましたが、あなたはリンクを押す相手のために最適化する立場です。

ランタイムの制約であることもあります。Python や Go で書かれたデータ読み込み処理は gzip なら標準ライブラリで開けますが、他の形式には依存関係やシステムパッケージが必要で、サーバーレス関数や堅牢化されたコンテナイメージにはそれがないことがあります。

DEFLATE がどこにでもあり LZMA2 がそうでない理由

gzip の優位は技術ではなく歴史です。DEFLATE は 1996 年に RFC 1951 として、gzip の容器は同じ月に RFC 1952 として公開され、同じアルゴリズムが PNG、ZIP、HTTP の転送符号化、Git の内部にまで入っています。gzip の読み取り機能を持つことは、多くのプラットフォームにとって無料に近いのです。

XZ は 2009 年に登場し、そうした乗り物を持たずスタートしました。Linux では自然に入りますが、それ以外の環境では誰かが導入を決める必要があります。未知の環境にファイルを渡すとき、この違いが本題そのものです。

広い探索窓が買っていたものと、手放すもの

gzip の DEFLATE は 32 KB の窓しか遡れませんが、XZ の LZMA2 は最大 64 MB の辞書を持てます。1 メガバイト目を圧縮しているとき、gzip は 96.8 万バイト前にしか遡れませんが、XZ はアーカイブの先頭まで見えます。

似たファイルが多数含まれるアーカイブでは差が明確に出ます。ライセンスヘッダーを共有する 200 個のソースファイル、同じ数十のテンプレートを使う 1 年分のログでは、XZ が 1 度学んだパターンを gzip は何度も学び直します。すでに JPEG や MP4 で圧縮済みのアーカイブでは、この変換のコストはほとんどありません。

ストリーミング、gzip にできて XZ にできないこと

gzip は固定 32 KB の窓で先頭から末尾へ復号でき、索引を持ちません。これが最も実用的な性質を生みます。`curl … | tar xzf -` はディスクに落とさずダウンロードを展開でき、ログの転送ツールはどれだけのデータが来るか知らないまま圧縮できます。

XZ もストリーミングできますが、必要なメモリーは固定ではなく辞書の大きさに比例します。組み込み機器やメモリー上限の厳しいコンテナが相手なら、gzip のストリームは受け取れても XZ のストリームは受け取れないことがあります。

再構築される tarball と、正直なミラーリング

この変換はアーカイブを展開し、中身から新しい TAR を作ってから圧縮します。中の各ファイルはバイト単位で同一ですが、tarball 自体は新しいものなので、上流が公開したチェックサムでは検証できません。

ミラーとして配るなら、実際に配っているファイルの独自のハッシュを公開し、正規のアーカイブと署名は上流にあると明記してください。

gzip がファイルに書き戻す名前

gzip のストリームは元のファイル名を持てるフィールドを持ちますが、xz のストリームにはそれがありません。`gunzip dataset.gz` は `dataset.tar` を返せますが、`unxz dataset.xz` はアーカイブだと分かる名前を残しません。

とはいえ保証ではなく気配りにすぎません。公開する前に `.tar.gz` という拡張子を付けておくのが確実です。

メモリーが理由なら BZ2 という選択肢もある

制約が純粋にメモリーであれば bzip2 も検討する価値があります。最大 900 KB の独立したブロック単位で動くので展開にほとんど何も要りません。ただし復元は計算量が大きく、遅いデバイスでは時間がかかります。

何を回避しているかで選んでください。メモリー確保に失敗したなら bzip2、形式そのものが認識されなかったり相手が人間であるなら gzip です。

どこで再圧縮され、どれだけ時間がかかるか

あなたのブラウザーではなくこちらのサーバー上で処理されます。7-Zip、xz、gzip という実際のプログラムが必要だからです。ファイルは暗号化された通信で送られ、外部のインターネットに出られないコンテナで処理されます。

ジョブごとにメモリー上の作業フォルダーが用意され、終了時に破棄されます。無料枠は 1 ファイルあたり 25 MB で、展開後に 2 GB を超えると宣言するアーカイブは展開前に拒否されます。

両方のファイルを並べて提供する

ダウンロードページを自分で管理できるなら、変換ではなく追加が最善です。技術的な読者向けに .tar.xz を、それ以外の読者向けに .tar.gz を並べてラベルを付け、選んでもらってください。ストレージのコストと引き換えに、両方の読者に最適な形を渡せます。

どちらか一方しか選べないなら、形式の優劣ではなく相手が誰かで決めてください。不特定多数向けの公開ダウンロードや、監査していないツールが取得する内部の成果物なら gzip です。

XZ を GZ に変換する手順

  1. お手元の XZ ファイル をこのページに落とすか、押してファイルを選んでください。
  2. 変換先に GZ を選び、変換を開始します。
  3. できあがった GZ ファイル をダウンロードします。

XZ と GZ——何が変わるか

XZとGZの比較
XZGZ
正式名称XZ アーカイブGzip アーカイブ
拡張子.xz.gz, .tgz
メディアタイプapplication/x-xzapplication/gzip
圧縮方式可逆 — 何も捨てない可逆 — 何も捨てない
最初の公開20091992
仕様RFC 1952
ライセンスオープン標準オープン標準
現在の位置づけ現行現行
ブラウザで開けるか対応なし対応なし
代わりに検討される形式BZ2, 7ZBZ2, ZIP

残るもの

失われるものはありません。XZ も GZ も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。

結果を開く

7-ZipとKekaは XZ と GZ のどちらも読めるので、別のプログラムを開かずに、結果を元のファイルと並べて確かめられます。

ファイルサイズと品質

GZ が一度に扱う範囲は 32 KB、XZ は 8 MB です。繰り返しがこの幅の中に収まっていて初めて、それを圧縮で畳めます。圧縮率の差はそこから来ます。そしてだからこそ、2 つのうち速いのはこちらです。

どちらの形式が何のためのものか

GZ は 1992 年から使われています。規定は RFC 1952 です。gzip、7-Zip、Kekaがこの形式を読めます。

GZ は 1992 年、XZ は 2009 年に登場しました。人に渡すならたいてい古いほうが安全で、新しいほうは同じ仕事をより少ないバイト数で片づけます。

XZ から GZ:よくある質問

XZ ファイル はどこかにアップロードされますか。

はい。この変換には、ブラウザーの中では動かないソフトウェアが必要です。ファイルは暗号化されて当方のサーバーへ送られ、処理が終わり次第削除されます。結果のファイルも 60 分後に削除されます。

XZ から GZ への変換は無料ですか。

はい。25 MB までのファイルなら 1 日 100 回まで無料です。この変換だけは当方が費用を負担するサーバーで動くため、ここに上限があります。それ以外に制限はなく、透かしはどの場合も入りません。

XZ を GZ に変換すると品質は落ちますか。

いいえ。GZ は同じ内容を何も捨てずに保持できるので、結果は品質の点で元のファイルと同じです。 ファイルは 1 バイトも変わらずに出てきます。失われるのは、容れ物が中身として持っていたものではなく、中身について持っていたもの——パスワードや、形式によっては元のアクセス権と日時です。

XZ から GZ への変換は可逆ですか。

失われるものはありません。XZ も GZ も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。

これらのフォーマットについて