bzip2コマンドでファイルを圧縮する方法|gzipとの違いや便利なオプションを解説
Linuxでは、Windowsと同様に複数の圧縮アルゴリズムを使って、複数のファイルを1つのアーカイブにまとめることができます。最も一般的なのはZIP形式ですが、圧縮アルゴリズムごとに得意・不得意があり、用途に応じて使い分けることが重要です。
bzip2とgzip、どちらを使うべき?
gzipコマンドは「LZ77」という圧縮方式を採用しています。一方、bzip2は「Burrows-Wheeler変換」というアルゴリズムを使用しており、仕組みがまったく異なります。
実際に、両方のコマンドをデフォルト設定で実行し、生成されたファイルを比較したテストがあります。その結果、bzip2の方がファイルサイズをより小さくできることがわかりました。ただし、その分bzip2の方が処理時間は大きくかかります。
また、lzmashコマンドは、gzipの最高圧縮レベルである-9オプションを指定して実行するのと同等の動作をします。デフォルトのgzipより時間はかかりますが、生成されるアーカイブはbzip2のものよりもさらに小さくなります。
bzip2でファイルを圧縮する手順
bzip2形式でファイルを圧縮するには、次のコマンドを実行します。
bzip2 ファイル名
生成されるアーカイブファイルには.bz2という拡張子が付きます。なお、このユーティリティは、圧縮によってファイルサイズが逆に大きくなる場合でも圧縮を実行します。この現象は、すでに圧縮済みのファイルをさらに圧縮しようとしたときに起こります。
bz2ファイルを解凍する方法
.bz2拡張子のファイルを展開するには、bunzip2コマンドを使用します。
bunzip2 ファイル名.bz2
bunzip2は、bzipまたはbzip2で圧縮された有効なファイルであればすべて展開できます。通常のファイルだけでなく、bzip2コマンドで圧縮されたtarファイルの解凍にも対応しています。
bzip2で圧縮されたtarファイルには.tbz2という拡張子が付きます。このファイルをbunzip2で展開すると、ファイル名はfilename.tarのように変わります。
覚えておきたい主なコマンドオプション
コマンドオプションを指定することで、bzip2の動作を細かく制御できます。
- -f: ファイルがすでにBZ2形式であっても強制的に圧縮を実行する
- -k: 圧縮後も元のファイルを残す
- -s: 圧縮処理に割り当てるメモリ量を減らす(その分、完了までの時間が長くなる)
- -t: アーカイブファイルの整合性をテストする
- -v: コマンド実行の詳細な情報(verbose出力)を表示する
なお、破損したアーカイブを復旧したい場合は、別途提供されているbzip2recoverユーティリティを使用します。必ず成功するとは限りませんが、アーカイブが展開できなくなってしまったときには、何もしないよりは有効な手段です。
-
Linuxのteeコマンド使い方ガイド|画面表示とファイル保存を同時に実現
Linuxシェルでパイプやリダイレクトを使っているなら、teeコマンドの出番もきっとあるはずです。teeは「標準出力に表示しながら、同時にファイルにも書き込む」ことができる便利なユーティリティです。この記事では、teeコマンドの基本操作から、sudoとの組み合わせ、追記モード、エラー出力の扱い方まで、実例を交えながら詳しく解説します。 teeコマンドとは何をするもの? まず、次のようなコマンドを見てみましょう。 ls このコマンドは、現在のディレクトリの内容を表示します。つまり、標準出力(stdout)へ出力するわけです。標準出力とは通常、画面、正確には仮想端末のディスプレイのことです
-
LinuxとmacOSでfdコマンドを使ってファイルを素早く検索する方法
fdは、従来のfindコマンドのシンプルな代替ツールです。簡潔な構文と短いコマンド体系を採用しており、入力の手間を大幅に減らせるのが特徴です。ただし、その簡潔さゆえに、初めて見たときには意味が分かりにくいという側面もあります。さらにfdは、標準のfindコマンドよりもパターンマッチングを高速に実行できる点も魅力です。この記事では、LinuxおよびmacOSでfdを使う方法を詳しく解説します。 Linuxへのfdのインストール fdは、デフォルトでインストールされているシステムは多くありません。お好みのパッケージマネージャーでダウンロード・インストールすれば、ターミナルからすぐに利用できるよう