前一篇我們介紹了傳統上很常在使用 .tar.gz 壓縮格式,而後來因為壓縮技術的進步,又出現了一個壓縮效果更好的 .tar.bz2 這種壓縮格式,他是使用新的 bzip2 這種壓縮格式代替傳統的 gzip。
.tar.bz2
壓縮檔案
.tar.bz2
(等同於 .tbz
與 .tb2
)這種格式跟 .tar.gz
的做法類似,也是把一般 .tar
檔案再壓縮一次,只是把原本使用的 gzip
換成 bzip2
而已,其餘的概念基本上都是一樣的。
建立 .tar.bz2
壓縮檔案
若要使用 tar
指令建立 .tar.bz2
格式的壓縮檔,可以使用下面這個指令:
tar -jcvf mpi.tar.bz2 mpi
這其實只是把原本的 .tar.gz
壓縮指令的 -z
換成 -j
而已。
.tar.bz2
亦可使用比較簡短的副檔名(.tbz
或 .tb2
)代替:
tar -jcvf mpi.tbz mpi
或
tar -jcvf mpi.tb2 mpi
這幾種副檔名都是一樣的。
.tar.bz2
跟 .tar.gz
類似,一樣也都可以分為兩段步驟來壓縮:
tar cvf mpi.tar mpi bzip2 mpi.tar
解壓縮 .tar.bz2
壓縮檔案
解壓縮 .tar.bz2
壓縮檔也是跟 .tar.gz
的情況類似,把原本的 -z
換成 -j
就可以了:
tar -jxvf mpi.tar.bz2
亦可使用兩段式解壓縮:
bzip2 -d mpi.tar.gz tar xvf mpi.tar
或是使用管線(pipe)的方式:
bzip2 -cd mpi.tar.bz2 | tar xvf -
基本上這些做法與概念都跟 .tar.gz
的狀況相同,這裡就不重複說明了,若想了解這其中的概念請參考前一篇的說明。
列出 .tar.bz2
壓縮檔案的內容
若要列出 .tar.bz2
檔案中的內容,可使用:
tar -jtvf mpi.tar.bz2
這個也是跟 .tar.gz
的用法類似,只是將 -z
換成 -j
而已。
從 .tar.bz2
壓縮檔案中解壓縮指定的檔案
若要從 .tar.bz2
壓縮檔中解開特定的檔案,可以直接將要解開的檔案名稱放在所有參數的最後:
tar -jxvf mpi.tar.bz2 "mpi/mpi.R"
若要指定多個檔案也可以:
tar -jxvf mpi.tar.bz2 "mpi/mpi.R" "mpi/pi.c" "mpi/my_phi.c"
若要解開某一類的檔案,也可以使用 --wildcards
參數配合萬用字元來指定要解開的檔案:
tar -jxvf mpi.tar.bz2 --wildcards "*.c"
這樣就會把 mpi.tar.bz2
壓縮檔中所有 C 語言的原始碼(*.c
)都解開來,輸出為:
mpi/MPI_Hello.c
mpi/pi.c
mpi/my_phi.c
原則上 .tar.bz2
的使用方式幾乎跟 .tar.gz
相同,只要把對應的 -z
參數換成 -j
,剩下的都一樣。