| この記事の要点 |
|
このカテゴリについて
アーカイブ・圧縮系は「複数のファイルを 1 つにまとめる」役割と「サイズを縮める」役割の 2 つを担います。ZIP は両者を一体化していますが、Unix 文化では tar(アーカイブ専用)と gzip / bzip2 / xz(ストリーム圧縮)を組み合わせる流儀が伝統です。tar.gz(.tgz)はその代表例。
圧縮アルゴリズムの選択は速度 vs 圧縮率のトレードオフです。最高圧縮の xz は CPU 時間を多く消費し、現代のサーバーでは Facebook 製の zstd(.zst)が「速度も圧縮率も両立」として急速に普及しています。Linux カーネルのアーカイブ、Debian パッケージ、PostgreSQL のバックアップなど、業界標準が次々と zstd に移行しています。
アーカイブ・圧縮形式で扱う主な拡張子
| 拡張子 | 概要 |
|---|---|
.zip | PKWARE 由来。Windows / macOS が標準対応 |
.tar | アーカイブのみ(圧縮なし)。Unix 標準 |
.gz / .tgz | gzip 圧縮。Web レスポンス圧縮にも使われる |
.bz2 / .tbz2 | bzip2。gzip より高圧縮、遅い |
.xz / .txz | xz (LZMA2)。さらに高圧縮、最遅 |
.zst | Zstandard。Facebook 製、現代の事実標準候補 |
.7z | 7-Zip フォーマット。AES-256 暗号化対応 |
.rar | WinRAR の独自形式。プロプライエタリ |
.lzh | 吉崎栄泰氏作。日本では 90 年代に主流だった |
.cab | Microsoft Cabinet。Windows インストーラーで使用 |
用途別の使い分け
| 目的 | 推奨形式 | 理由 |
|---|---|---|
| 一般ユーザーへの配布 | .zip | Windows / macOS が標準で開ける |
| ソースコード公開 | .tar.gz / .tar.xz | パーミッションとシンボリックリンクを保持 |
| 大量データのアーカイブ | .tar.zst | 速度と圧縮率のバランス最強 |
| パスワード保護 | .7z / .zip (AES-256) | AES-256 暗号化対応 |
| HTTP レスポンス | gzip / br (Brotli) | ブラウザがネイティブ展開 |
| Docker レイヤ | .tar.gz (or zstd) | OCI 標準 |
セキュリティ注意: ZipSlip / Tar Slip
解凍時にエントリパスをチェックせず ../../etc/passwd のような相対パスを許すと、任意の場所にファイルが書き込まれます。多言語の解凍ライブラリで度々発見されている脆弱性で、独自の解凍ロジックは避けるか、必ずパスを正規化してから書き出します。
関連カテゴリ・記事
- ファイル拡張子とは(概論)
- zip ファイルやディレクトリをzip形式に圧縮する
- unzip zip ファイルを解凍する
- 実行ファイル・パッケージ — deb/rpm との関係
子ページ
同階層のページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- djangoのテンプレートの作成とヘッダー・フッターの共通化 2026-10-03 21:41:49
- テンプレートフラグメント(ヘッダー等の共有化) 2026-10-03 21:41:49
- reCAPTCHA v3 使い方(サンプル付き) 2026-10-03 21:37:05
- Content-Type一覧|MIMEタイプとはとHTTPでの主な使用場面 2026-10-03 21:37:05
- SpringにおけるAOPの使い方 2026-10-03 21:37:05
- X (Twitter) API でツイートできないがエラーが出ない問題の原因と対処 2026-10-03 11:33:01
- X (Twitter) API アプリケーション登録完全ガイド|v2・Bearer Token・OAuth 2.0 PKCE 2026-10-03 11:33:01
- X (Twitter) API 完全ガイド|従量課金の料金・単価(2026年10月)と v2 移行 2026-10-03 11:32:40
- Google DeepMind とは?Gemini・AlphaFold の開発元 2026-10-03 11:26:56
- Cursor とは?AI 統合型コードエディタの使い方・料金 2026-10-03 11:26:56
- Claude (Anthropic) とは?AIチャットの使い方・モデルファミリ・API 2026-10-03 11:26:56
- AIベンダー一覧:OpenAI・Anthropic・Google DeepMind・Microsoft・Meta 2026-10-03 11:26:56
- クラウド・インフラ完全ガイド — AWS/Azure/GCP/Kubernetes 2026-10-03 11:26:56
- テキストエディタ完全比較 (VS Code / Cursor / Vim / Emacs / IDE) 2026-10-03 11:26:56
- プログラミング学習プラットフォーム|Scratch・micro:bit ほか 2026-10-03 11:26:56