Linux下的gzip和bzip2命令都是針對文件的壓縮。即便針對目錄來壓縮,也是將目錄下的文件逐個壓縮,而不是像Windows下的winrar軟件同樣,能夠將目錄整個壓縮。那要實現目錄整個壓縮的功能,就要用到tar這個打包命令。而tar不只有打包的功能,其還能經過調用bzip2或gzip進行壓縮和解壓縮。ide
tar的選項很是多,經常使用的選項含義以下:blog
-c:打包文件,可搭配-v來察看過程當中被打包的文件ip
-t:查看打包後的文件中都打包了哪些文件文檔
-x:解打包或解壓縮。能夠搭配-C(大寫C)將文件解壓到特寫目錄中去get
-j:經過bzip2的支持進行壓縮/解壓縮,此時通常產生的文檔名爲*.tar.bz2it
-z:經過gzip的支持進行壓縮/解壓縮,此時通常產生的文檔名爲*.tar.gzclass
-v:在壓縮/解壓縮的過程當中,將正在處理的文件名顯示出來cli
-f filename:-f後面跟要產生的文件名。建議-f單獨寫一個選項打包
-C 目錄:解壓縮的時候,可使用-C選項來解壓到特定目錄中去軟件
-p:保留原數據的權限與屬性
-P(大寫P):保留絕對路徑
--exclude=file:能夠將某文件單獨去掉,不打包它
其實tar命令最經常使用的選項以下:
tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名 //此命令用於打包和壓縮
tar -jtv -f filename.tar.bz2 //此命令用於查詢文件
tar -jxv -f filename.tar.bz2 -C 要解壓到的目錄 //此命令用於解壓到特定目錄
在上述3個命令中,都是使用了bzip2進行壓縮和解壓。其中,filename.tar.bz2便是壓縮產生的那個文件。而最後一個解壓的命令,若是不加-C選項,是默認解壓到當前目錄。
再值得一提的是,因爲tar命令不像gzip和bzip2那樣會自動產生新文件名,因此須要咱們自定義產生的壓縮文件包。若是是隻是打包,則最好將產生的文件命名爲filename.tar,若是是又調用bzip2進行了壓縮,則最好將產生的文件命名爲filename.tar.bz2。
上圖中,使用tar將新建立的file1/file2/file3/file4進行了打包和壓縮,併產生了新的壓縮文件file1234.tar.bz2。
而要查詢壓縮文件中都有哪些文件,能夠:
而解壓縮的話,能夠:
須要注意的是,在某些教材上,將僅使用tar -c進行打包的文檔叫作tarfile,而若是在打包的同時進行了壓縮的操做,則將產生的文件叫作tarball。