| この記事の要点 |
|
このカテゴリについて
アーカイブ・圧縮系は「複数のファイルを 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・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09