このページで解説している内容は、以下の 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
...(以下省略)...
  • 結果
    dummyfiledummyfile.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 dummyfile

bunzip2で展開

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コマンドを活用することで、より効率的なファイル管理とデータ圧縮が可能になります。ぜひ実際にコマンドを試して、その効果を体感してみてください。