bzip2 使用 Burrows-Wheeler 變換 + Huffman 編碼,壓縮比通常優於 gzip 10-20%,但速度較慢。bunzip2 為符號連結(bzip2 -d)。本文詳解參數、壓縮等級、完整性測試、保留原檔與 tar 整合。
| 參數 | 功能 |
|---|---|
-d | 解壓(等同 bunzip2) |
-v | 顯示詳細壓縮資訊(比率、bits/byte、節省%) |
-k | 保留原檔(預設壓縮/解壓後刪除原檔) |
-f | 強制覆蓋同名輸出檔 |
-t | 測試 .bz2 完整性 |
-NUM | 壓縮等級 1-9,數字越大壓縮率越高,預設 9 |
-c | 輸出至標準輸出 |
-q | 安靜模式 |
tar 歸檔(.tar.bz2).bz2-k 保留gzip 或 zstdbzip2 -9vk /opt/etc.zip /opt/var.zip /opt/backup.zip
# etc.zip: 1.048:1, 7.633 bits/byte, 4.59% saved, 49490414 in, 4721194 out.
# var.zip: 1.048:1, 7.633 bits/byte, 4.59% saved, 49490414 in, 2821065 out.
# backup.zip: 1.046:1, 7.647 bits/byte, 4.42% saved, 8410 in, 8823 out.
產生 etc.zip.bz2, var.zip.bz2, backup.zip.bz2。
bzip2 -t etc.zip.bz2
# 無輸出表示通過
bunzip2 -k etc.zip.bz2
# 或
bzip2 -dk etc.zip.bz2
tar 整合:歸檔 + bzip2 壓縮
# 建立
tar -jcvf /backup/etc.tar.bz2 /etc
# 列出
tar -jtvf /backup/etc.tar.bz2
# 解壓
tar -jxvf /backup/etc.tar.bz2 -C /target
| 工具 | 演算法 | 速度 | 壓縮比 | 記憶體 | 適用場景 |
|---|---|---|---|---|---|
| gzip | DEFLATE | 快 | 中 | 低 | 通用、日志、管線 |
| bzip2 | BWT+Huffman | 慢 | 高 | 中 | 原始碼發布、長期封存 |
| xz | LZMA2 | 很慢 | 極高 | 高 | 軟體包分發、核心映像 |
| zstd | ZSTD | 極快 | 高 | 可調 | 現代首選、即時壓縮、備份 |
bzip2 是「高壓縮比經典」,xz 是「極限壓縮王」,zstd 是「速度與壓縮比平衡的現代王者」。理解 -k 保留原檔、-t 測試完整性、-c 串流輸出、tar -j 整合四大核心用法。新專案優先評估 zstd(zstd -19 --long=31 可超越 xz 壓縮比且解壓快 10 倍),舊有 .bz2 生態維持相容即可。