このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:ファイルを圧縮する:bzip2コマンド

ファイルを圧縮する:bzip2コマンド
ファイルの圧縮と展開は、システム管理やデータのバックアップにおいて重要な操作です。bzip2コマンドは、gzipと同様にファイルを圧縮・展開するためのツールですが、gzipよりも高い圧縮率を持つため、データ量をより小さくすることができます。ここでは、bzip2コマンドの基本的な使い方や特徴について、具体的な例や表を用いて分かりやすく解説します。

bzip2コマンドとは
- 目的:ファイルの圧縮・展開を行う。
- 特徴
・gzipよりも圧縮率が高い。
・圧縮・展開に時間がかかる。
・ファイルサイズの削減を重視する場合に有効。 - 互換性
・gzipコマンドと同じオプションを使用可能。
・gzipの使い方を知っていればすぐに利用できる。
bzip2コマンドの基本的な使い方
ファイルを圧縮する
【書式】bzip2によるファイルの圧縮bzip2 <圧縮元ファイル>
例:ダミーファイルの作成と圧縮
ダミーファイルの作成 100MBのゼロフィルされたダミーファイルを作成します。
user01@ubuntu:~$ dd if=/dev/zero of=dummyfile bs=1M count=100説明
ddコマンドを使用して、/dev/zeroから100MBのゼロフィルされたファイルを作成。if=/dev/zero:入力ファイルを/dev/zeroに指定。of=dummyfile:出力ファイルをdummyfileに指定。bs=1M:ブロックサイズを1MBに設定。count=100:100個のブロックを作成。
実行結果
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0849886 s, 1.2 GB/sファイルの確認
user01@ubuntu:~$ ls -l出力例
合計 102444
drwxrwxr-x 2 user01 user01 4096 11月 24 15:59 bin
-rw-rw-r-- 1 user01 user01 104857600 12月 3 00:29 dummyfile
...(以下省略)...ファイルの圧縮
user01@ubuntu:~$ bzip2 dummyfile圧縮後のファイル一覧
user01@ubuntu:~$ ls -l出力例
合計 48
drwxrwxr-x 2 user01 user01 4096 11月 24 15:59 bin
-rw-rw-r-- 1 user01 user01 113 12月 3 00:29 dummyfile.bz2
...(以下省略)...- 結果
・dummyfileがdummyfile.bz2に圧縮された。
・ファイルサイズが約100MBから約113バイトに大幅に縮小。 - 拡張子
・.bz2が付加される。
ファイルを展開する
【書式】bzip2 -d <圧縮ファイル>
またはbunzip2 <圧縮ファイル>
例:ファイルの展開
1.ファイルの展開(bzip2 -dを使用)
user01@ubuntu:~$ bzip2 -d dummyfile.bz2展開後のファイル一覧
user01@ubuntu:~$ ls -l出力例
合計 102444
drwxrwxr-x 2 user01 user01 4096 11月 24 15:59 bin
-rw-rw-r-- 1 user01 user01 104857600 12月 3 00:29 dummyfile
...(以下省略)...2.ファイルの再圧縮と展開(bunzip2を使用)
再度圧縮
user01@ubuntu:~$ bzip2 dummyfilebunzip2で展開
user01@ubuntu:~$ bunzip2 dummyfile.bz2結果
dummyfile.bz2が展開され、dummyfileが復元された。
標準出力への出力と任意のファイル名での圧縮
-cオプションを使用すると、圧縮データを標準出力に出力できます。
例:任意のファイル名で圧縮ファイルを作成
user01@ubuntu:~$ bzip2 -c dummyfile > custom_name.bz2ファイル一覧の確認
user01@ubuntu:~$ ls -l出力例
合計 102448
drwxrwxr-x 2 user01 user01 4096 11月 24 15:59 bin
-rw-rw-r-- 1 user01 user01 104857600 12月 3 00:29 dummyfile
-rw-rw-r-- 1 user01 user01 113 12月 3 00:34 custom_name.bz2
...(以下省略)...- 結果
・dummyfileを圧縮し、custom_name.bz2という名前で保存。 - 注意点
・bzip2 -cの出力はバイナリデータであり、直接ターミナルに表示するとエラーが表示されたり、文字化けを起こしたりします。
・必ずリダイレクトやパイプを使用して出力を処理してください。
bzip2コマンドの主なオプション一覧
| オプション | 説明 |
|---|---|
-d | ファイルを展開する(--decompressと同等) |
-c | 圧縮データを標準出力に出力する |
-k | 圧縮後も元のファイルを保持する |
-v | 詳細な情報を表示する |
-1〜-9 | 圧縮レベルを指定する(-1が高速、-9が高圧縮) |
ここで作成したファイルを削除します
テストで作成したファイルを削除し、ディスクスペースを解放します。
user01@ubuntu:~$ rm custom_name.bz2 dummyfileまとめ
bzip2コマンドは、gzipよりも高い圧縮率でファイルを圧縮・展開できるツールです。- 基本操作
・圧縮:bzip2 <ファイル名>
・展開:bzip2 -d <圧縮ファイル>またはbunzip2 <圧縮ファイル> - ポイント
・圧縮・展開時には元のファイルが削除されるため、必要に応じてバックアップを取るか、-kオプションを使用して元のファイルを保持してください。
・gzipと同じオプションを使用できるため、習得しやすい。 - 応用
・大容量データの圧縮に適しており、ディスクスペースの節約が可能。
・パイプライン処理やスクリプトでの活用など、さまざまな場面で利用できる。
bzip2コマンドを活用することで、より効率的なファイル管理とデータ圧縮が可能になります。ぜひ実際にコマンドを試して、その効果を体感してみてください。
