1. bzip2

(a) 系統: Linux Mandrake 8.0

路徑: /usr/bin/bzip2

(b) shared library:

/usr/lib/libbz2.so.1
/lib/libc.so.6
/lib/ld-linux.so.2

(c) 主要用途:

用來將檔案壓縮成bzip2格式的程式

(d) 參數:

用法: bzip2 [flags and input files in any order]

-h --help 印出說明訊息
-d --decompress 解壓縮
-z --compress 壓縮
-k --keep 保留不刪除輸入檔案
-f --force 複寫已存在的輸出檔案
-t --test 測試壓縮檔案的壓縮比例
-c --stdout 輸出到標準輸出
-q --quiet 壓抑不嚴重的錯誤訊息
-v --verbose 詳細資訊 (第二個 -v 更詳細)
-L --license 顯示軟體版本及版權
-V --version 顯示軟體版本及版權
-s --small 使用較少的記憶體 (最多 2500k)
-1 .. -9 設定block size為 100k .. 900k

如果輸入 `bzip2', 預設的動作是壓縮.
`bunzip2',預設的動作是解壓縮.
`bzcat',預設的動作是解壓縮到標準輸出.

(e) 範例:

通常 bzip2 與 tar 常搭配著使用,就跟gzip與tar常搭配著使用一樣, 例如我有一個linux-2.4.10.tar.bz2的這個檔案要將他解壓縮,
可以下這些指令:

bzip2 -d linux-2.4.10.tar.bz2 (解完壓縮之後,會生成一個linux-2.4.10.tar的檔案) tar xvf linux-2.4.10.tar

但是也可以將這兩個指令合併成為:

bzip2 -d -c linux-2.4.10.tar.bz2 | tar xvf -

以上這個指令的 -c 是代表著要將結果輸出到標準輸出,也就是把他當作 tar 的標準輸入 ,因為這使用了 Unix 的 Pipe ,然後 tar 的 xvf 中的 x 代表著要將 tarball 檔解開, v 代表著要顯示解開的過程,而 f 呢,則是說明要用那些檔案,而那個 - 代表著標準輸入 也就是將標準輸入當作是檔案來解開

通常這種用來壓縮與解壓縮的程式,如果沒辦法一次壓好幾個檔案的話,那麼通常會與 tar 一起用,而且這也是許多 Unix 都採用的方法,不過大部分的系統都是 tar 與 gzip 合用, 但是越來越多人用 bzip2 了,因為他的壓縮效果比 gzip 來的好,所以在這裡介紹他

在介紹完如何使用 bzip2 解壓縮之後,再來就是解說如何使用 bzip2 來壓縮檔案

假設我現在有一個 test 這個檔案要壓縮,

那麼就用這個指令:

bzip2 -z test (其實可以不用 -z ,因為預設就是壓縮)

那麼就會產生一個 test.bz2 的檔案,而原檔案會不見,如果要原檔案保留下來的話,要下 -k 這個參數.再來就是如何壓縮多個檔案

下這個指令:

bzip2 -z *

是沒有用的,因為他會將所有的檔案個別壓縮,所以你會看到很多的 .bz2 檔案,因為 bzip2 沒辦法將很多檔案壓縮成一個檔案,所以要配合著 tar 來使用

tar cvf test.tar * | bzip2 -z test.tar

這樣就會產生 test.tar.bz2 的檔案.如果要讓壓縮效果更好,可以加 -1 .. -9 這些參數 讓壓縮效果更好.

因為 bzip2 與 bunzip2 其實不是 hard link 就是 soft link,所以 bunzip2 的範例其 實就是 bzip2 範例中的解壓縮的部份,因此 bunzip2 的範例我就不再寫了