UNIX/Linuxの部屋 用語集:圧縮・伸長まとめ

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




用語集 圧縮・伸長まとめ compress (.Z)・gzip (.gz)・bzip2 (.bz2)・xz (.xz) とマルチスレッド版 pigz・pbzip2・pxz の圧縮・伸長 (解凍) のまとめ このエントリーをはてなブックマークに追加

現在の UNIX・Linux でよく使われる圧縮形式や、圧縮・伸長 (解凍・展開) コマンドについて説明する。



圧縮率と速度
圧縮率は、一般的には下記のとおりで、xz が一番圧縮率が高い (小さいサイズに圧縮できる)。
gzip < bzip2 < xz
圧縮・伸長 (解凍・展開) の速度は圧縮率に比例して、
gzip < bzip2 < xz
となり、xz が一番遅い。

近年 CPU 速度が頭打ちで、その代わりにマルチコア対応が進んできた。gzip・bzip2・xz などはいずれもシングルプロセスで圧縮・伸長を行うため、1コアを集中的に使うものの、他のコアが遊んでしまう。最近はマルチコアを有効活用できるよう、マルチスレッド版の pigz・pbzip2・pxv コマンドなどが出てきた。

gzip コマンド
UNIX における最も標準的な圧縮・伸長コマンド。
拡張子 .gz (tar + gzip の拡張子は .tar.gz または .tgz)
基本コマンド gzip
伸長 gunzip
表示 gzcat, zcat
圧縮したままgrep zgrep (Solaris では gzgrep のようだ), zegrep, zfgrep
マルチスレッド版 pigz (unpigz)
tarオプション tar zcf (圧縮)、tar zxf (展開)、tar ztf (一覧表示)
その他 zforce, znew, zcmp, zdiff, gzexe, gzrecover

bzip2 コマンド
gzip より圧縮率が高いが、動作が遅い。Linux 界隈では標準圧縮フォーマットとして認知されている感がある。
拡張子 .bz2 (tar + bzip2 の拡張子は .tar.gz または .tbz2)
基本コマンド bzip2
伸長 bunzip2
表示 bzcat
圧縮したままgrep bzgrep, bzegrep, bzfgrep
マルチスレッド版 pbzip2
tarオプション tar jcf (圧縮)、tar jxf (展開)、tar jtf (一覧表示)

xz コマンド
bzip2 より圧縮率が高いが、動作が遅い。特に圧縮がとても遅い。
拡張子 .xz (tar + xz の拡張子は .tar.xz または .txz)
基本コマンド xz
伸長 unxz
表示 xzcat
圧縮したままgrep xzgrep, xzegrep, xzfgrep
マルチスレッド版 pxz (または xz の -T オプション)
tarオプション tar Jcf (圧縮)、tar Jxf (展開)、tar Jtf (一覧表示)

昔の UNIX で使われていたコマンドは下記。

compress コマンド
古い形式であり、今となっては使わなくてよいでしょう。Linux では ncompress パッケージとして提供されているようだ。
拡張子 .Z
基本コマンド compress
伸長 uncompress
表示 zcat
圧縮したままgrep たぶんない
tarオプション tar Zcf (圧縮)、tar Zxf (展開)、tar Ztf (一覧表示)

pack コマンド
とても古い形式であり、今となっては使わなくてよいでしょう。
拡張子 .z
基本コマンド pack コマンド
伸長 unpack コマンド


以下は Windows 系でよく使われる形式。

unzip コマンド
概要 Windows 界隈で使われている zip 形式を扱える。
コマンド unzip
拡張子 .zip

7z コマンド
概要 Windows 界隈で使われている 7z 形式を扱えるコマンド。圧縮率は xz コマンドとほぼ同じ。
拡張子 .7z
コマンド 7z・7za・7zr・p7zip

lha コマンド
概要 Windows 界隈で使われていた lhz・lha 形式を扱えるコマンド。
コマンド lha
拡張子 .lhz .lha

さらにその他 (未調査)
rzip・lzip・lzop・rar・lz4