はじめに
Linuxを使っていると、.gz, .bzip2, .xzなど複数の圧縮形式を見かけます。
「何が違うのか?」と気になったので、今回特徴を整理しました。
各圧縮形式の比較
| 方式 | 圧縮率 | 速度 | 特徴 |
|---|---|---|---|
| gzip | 〇 | ◎ | Linux標準・高速 |
| bzip2 | ◎ | 〇 | gzipより高圧縮(現在はやや旧式) |
| xz | ◎ | △ | 最高圧縮・CPU負荷高 |
gzip
-
Linux環境で一般的に利用される圧縮形式
-
gzipコマンド単体では1ファイルのみ圧縮可能
(例)
圧縮gzip file.txt⇒圧縮ファイル file.txt.gz ができる
復元
gzip -d file.txt.gz⇒file.txt が復元される(gunzipコマンドでも復元できる)
-
複数ファイルやディレクトリを圧縮する場合はtarと組み合わせて使用する
(例)カレントディレクトリにあるbackupディレクトリごとgzip圧縮
入力tar -czvf backup.tar.gz backup/出力
backup/ backup/list.txt backup/list2.txt backup/list3.txtオプション 意味 -c 「create」 新規作成 -z gzipで圧縮 -v 「verbose」 処理中のファイル名表示 -f 「file」ファイル名の指定 注意:"-f"は直後にファイル名を書く必要があるため、オプションの最後尾にする
(例)圧縮ディレクトリの展開
tar -xzvf backup.tar.gzオプション 意味 -x 「extract」 展開
bzip
-
gzipより高い圧縮率を持つ圧縮形式
-
gzipより圧縮・展開に時間がかかる
-
bzip2コマンド単体では1ファイルのみ圧縮可能
-
かつて主流だったが、現在はxzの利用が増えている
(例)
圧縮bzip2 file.txt⇒圧縮ファイル file.txt.bz2 ができる
復元
bzip2 -d file.txt.bz2⇒file.txt が復元される(bunzip2コマンドでも復元できる)
-
gzipと同様に、複数ファイルやディレクトリを圧縮する場合はtarと組み合わせて使用する
(例)カレントディレクトリにあるbackupディレクトリごとbzip2圧縮
tar -cjvf backup.tar.bz2 backup/オプション 意味 -j bzip2で圧縮 -
tarと組み合わせた場合の解凍方法はgzipと同様
xz
-
gzip・bzip2よりさらに高い圧縮率を持つ圧縮形式
-
圧縮には時間がかかるが、非常に小さいサイズにできる
-
xzコマンド単体では1ファイルのみ圧縮可能
(例)
xz file.txt⇒圧縮ファイル file.txt.xz ができる
-
gzip, bzip2と同様、複数ファイルやディレクトリを圧縮する場合はtarと組み合わせて使用する
(例)カレントディレクトリにあるbackupディレクトリごとxz圧縮
tar -cJvf backup.tar.xz backup/オプション 意味 -J xzで圧縮 注意:xz圧縮のオプションは大文字で"-J"
-
tarと組み合わせた場合の解凍方法はgzip, bzip2と同様
おわりに
gzip, bzip2, xzはいずれもよく見かける圧縮形式ですが、「圧縮率」と「処理速度」にそれぞれ特徴があることが分かりました。
用途に応じて使い分けられるようになると、Linuxでのファイル操作が理解しやすくなると思います。
間違いや補足などがあればコメントで教えていただけると嬉しいです。