TAR.XZをオンラインでTAR.GZに変換
より幅広い互換性を得るため、XZからGZIP圧縮に切り替えます。TAR.GZはほぼすべてのUnix/Linuxシステムでサポートされており、ファイルサイズはやや大きくなるものの展開速度は速くなります。この形式は何十年も標準として使われ続けており、あらゆる環境で動作します。
GZIP圧縮は、特許で保護されたcompressユーティリティの代替として1992年に登場しました。長い歴史があるため、あらゆるUnix系システム、組み込み機器、さらにはWindowsのツールでも広くサポートされています。ファイルサイズより最大限の互換性が重要な場合は、TAR.GZが適した選択肢です。
TAR.XZよりTAR.GZを使うべきケース
- 旧式システム — 古いシステムや組み込みシステムにはXZツールが入っていない場合があります
- 高速な展開 — GZIPはほとんどのデータでXZより2~3倍速く展開できます
- ストリーミング — ネットワーク経由のパイプ処理や逐次処理に適しています
- 少ないメモリ使用量 — GZIPは展開時のメモリ使用量が少なく、制約のあるシステムで重要
- 汎用的なツール — gzipとgunzipは1990年代からあらゆるUnixシステムで利用可能
変換の仕組み
TAR.XZからTAR.GZへの変換では、XZ層を展開して元のTARアーカイブを取り出し、その後GZIPで再圧縮します。TARアーカイブ自体は変わらないため、ファイルの中身、パーミッション、タイムスタンプ、所有者情報、シンボリックリンクはすべてそのまま維持されます。
生成されるTAR.GZファイルは元のTAR.XZより大きくなり、テキスト中心のコンテンツでは通常30~50%大きくなります。ただし、展開は明らかに速くなり、XZに対応していないシステムやツールとの互換性も得られます。
圧縮方式の比較: XZとGZIP
GZIPはDEFLATEアルゴリズム(LZ77+ハフマン符号化)を使用し、XZはLZMA2(Lempel-Ziv-Markov連鎖)を使用します。LZMA2はより大きな辞書とより高度なマッチングにより高い圧縮率を実現しますが、より多くのメモリとCPU時間を必要とします。展開速度が重要な、頻繁にアクセスするアーカイブでは、ファイルサイズが大きくなってもGZIPは今も優れた選択肢です。
GZIPの32KB辞書はXZの最大1.5GBの辞書と比べると小さく、これが圧縮率の差の理由です。ただし、GZIPのメモリ使用量の少なさは、組み込みシステムやリソースに制約のある場面に最適です。
GZIPは1992年以来Unixの標準であり、旧式のインストール環境、ネットワーク機器、レガシーサーバーを含むあらゆるシステムで広くサポートされています。互換性が重要な場合、TAR.GZは信頼できる選択肢です。
コマンドラインでの操作
ターミナルコマンドに慣れているユーザーは、通常次のコマンドでTAR.XZをTAR.GZに変換できます: xz -dk archive.tar.xz && gzip archive.tar これは元のファイルを残したままXZファイルを展開し、その後GZIP圧縮を適用します。このオンラインコンバーターは、コマンドラインを使わずに同じ処理を自動的に行います。
TAR.GZを扱う標準ツール(tar、gzip、gunzip)は、macOSを含むほぼすべてのUnixシステムに標準搭載されています。この普及度の高さから、古いシステムや最小構成のインストール環境を使っているかもしれない未知の受け取り先にアーカイブを配布する際、TAR.GZは最も安全な形式となります。
TAR.GZの使用例
Webサーバーへのデプロイでは、展開の速さがデプロイ時間を最小限に抑えられるため、TAR.GZがよく使われます。TAR.GZ形式で配布されるPHP、Python、Node.jsのパッケージは、インストール時に素早く展開されます。バックアップスクリプトも、最終的なファイルサイズより圧縮時間が重要な定期処理では、TAR.GZを好むことが多いです。
Dockerイメージやコンテナレジストリは、ストリーミング展開が可能なことからTAR.GZレイヤーとの相性が良好です。多くのコンテナベースのワークフローは、中間ファイルを介さずプロセス間でTAR.GZデータを直接パイプ処理します。このストリーミングモデルは、XZのブロック単位の圧縮方式では実装がより困難です。