初學(xué)者必看:Linux壓縮那些事兒
Linux的壓縮命令的源文件只能有一個(gè),這意味在壓縮之前不得不先將要壓縮的所有文件打包成一個(gè)包,然后再壓縮包,這樣來完成對(duì)多個(gè)文件的壓縮。所以在了解解壓縮之前就必須先了解打包命令。
Linux的打包一般都是通過tar命令來完成的,通過man tar,可以得到一些信息,tar來完成不同的動(dòng)作是通過指定不同的參數(shù)來完成的,通常使用的也就是——x/c,這兩個(gè)參數(shù),它們的字面含義是c——create,x——extract,創(chuàng)建和分包提取,另外還有一些不常用的參數(shù),比如a,將tar添加到另外一個(gè)tar包的末尾,t,列出包中的文件,-C,將工作目錄切換到指定的目錄下,指定這個(gè)參數(shù)就可以將解壓后的文件放到指定的目錄當(dāng)中去了,等。另外有一個(gè)重要的參數(shù)f,這個(gè)參數(shù)可以打包的結(jié)果放在一個(gè)文件當(dāng)中。
下面舉兩個(gè)簡單的例子說明打包和分包提取:
1.打包文件,現(xiàn)在有3個(gè)文件,文件名分別是fiel1,file2,file3,把這三個(gè)文件打包成file.tar.
tar -cf file.tar file1 file2 file3
-c,打包模式,-f指定將要?jiǎng)?chuàng)建的打包結(jié)果存放文件。
2.解包文件,現(xiàn)在有一個(gè)包file.tar,將它解包。
tar -xf file.tar
-x,解包模式,-f指定tar包文件。
講完打包,接著將壓縮,壓縮的作用毋庸置疑,一旦一件事物變的更為簡單之后,各方面的操作就更為簡單,Linux的壓縮一般有幾種方式,它們是gzip壓縮,bzip2壓縮,xz壓縮。它們的輸入都只有一個(gè),下面講一個(gè)實(shí)例,分別用這三種壓縮方式來壓縮file.tar,然后壓縮好的壓縮文件再分別用這三種方式解壓,生成xfile.tar,由于分別對(duì)單純的解壓和壓縮并不是本文的重點(diǎn),所以有些參數(shù)就不著重介紹,但需要的時(shí)候會(huì)簡單的介紹下。
1.用gzip操作
壓縮:gzip file.tar (如想將文件壓縮到指定的文件當(dāng)中去,可用"gzip -c file.tar > xxx",來完成,以下相同)
解壓:gunzip -c file.tar.gz > xfile.tar
2.用bzip2操作
壓縮:bzip2 -c file.tar > xifle.tar.bz2
解壓:bunzip2 -cv xfile.tar.bz2 > xfile.tar
3.用xz操作
壓縮:xz -c file.tar > xfile.tar.xz
解壓:unxz -c xfile.tar.xz > xfile.tar
對(duì)于壓縮來講,壓縮率顯然是首要關(guān)注點(diǎn),就壓縮率而言,xz>bzip2>gzip,一般情況下xz能比bzip2高出15%的壓縮率,比gzip高出30%的壓縮率,但是另外的有一些東西在具體的場合下還是需要關(guān)心的,比如CPU占有率,xz雖然壓縮比高,但是它的耗時(shí)卻是最多的,這意味著占用了更多的CPU時(shí)間片,所以在選擇壓縮算法的時(shí)候還應(yīng)該考慮到現(xiàn)在的首要關(guān)注點(diǎn)是什么,以此來選擇壓縮算法。
上面分別講解了打包和解壓縮這兩個(gè)過程,但這兩個(gè)過程是分開的,在通常情況下,這兩個(gè)過程不會(huì)分開,而是用tar包一步將多個(gè)文件打包壓縮成一個(gè)壓縮包,下面將分別使用tar命令調(diào)用這三種壓縮方式來完成一步將多個(gè)文件打包壓縮成一個(gè)壓縮包。
1.用tar調(diào)用gzip將file1,file2,file3生成壓縮包
tar -czvf file.tar.gz file{1,2,3}
2.用tar調(diào)用bzip2將file1,file2,file3生成壓縮包
tar -cjvf file.tar.bz2 file{1,2,3}
3.用tar調(diào)用xz將file1,file2,file3生成壓縮包
tar -cJvf file.tar.xz file{1,2,3}
對(duì)于上面的文字,有點(diǎn)需要注意,那就是后綴名并不是必須的,Linux當(dāng)中后綴名都不是必須的,這應(yīng)該是一個(gè)基礎(chǔ)點(diǎn),之所以指定后綴名是為了便于區(qū)別,也方便一些粗糙的識(shí)別程序。
閱讀完上面的文字,我相信對(duì)Linux的壓縮應(yīng)該有一定程度的掌握,其實(shí)最重要的還是要學(xué)會(huì)閱讀man page,里面應(yīng)有盡有,只是過全就會(huì)過于復(fù)雜,不太適合初學(xué)者。