已經(jīng)有很多的關(guān)于linux壓縮文檔的文章,而且寫(xiě)得非常好,不過(guò)我還是想再寫(xiě)一篇,一來(lái)是對(duì)自己所學(xué)知識(shí)的一次檢驗(yàn),二來(lái)希望能寫(xiě)得更加簡(jiǎn)單明了。
我很喜歡linux,自由開(kāi)源軟件也很精彩,只是初接觸linux時(shí),被它眾多的壓縮文檔類(lèi)型弄得不知所措而無(wú)從下手,如果一開(kāi)始就學(xué)linux就不會(huì)覺(jué)
得有太大的困難,但是對(duì)于那些象我這樣剛從windows轉(zhuǎn)投linux懷抱的人來(lái)說(shuō),沒(méi)有了zip和rar就找不著北了,所以我迫切地想了解和熟悉
linux壓縮文檔。
首先要弄清楚的一個(gè)概念,就是打包和壓縮。打包就是將很多的目錄和文件捆成一個(gè)文件包,這其中并沒(méi)有壓縮的過(guò)程。linux里很多壓縮程序都是對(duì)單個(gè)文件進(jìn)行壓縮的,所以要打包好以后再用壓縮程序?qū)⒋笪募嚎s成小文件以方便傳輸。
linux世界里常用的打包程序就是tar,用tar打包的出來(lái)的文件叫tar包,后綴是.tar。tar的詳細(xì)用法可以在終端用命令man tar來(lái)查看,命令的用法非常豐富,只是如果在這里一一羅列,就太繁瑣了,我不想把它搞得太復(fù)雜。
我有很多的doc文檔,想將它打成一個(gè)tar包,所以我在終端敲入了下面的這條指令
tar -cf abc.tar *.doc 將所有的doc文檔打成一個(gè)名為abc.tar的包
-c (create) 建立新的壓縮文檔
-f (file) 指定壓縮文檔的名字
打包的過(guò)程好象什么也沒(méi)有,機(jī)子到底在做了些什么?我很想看看在打包的過(guò)程中都處理了哪些文件,所以我給上面的打包命令加了一個(gè)參數(shù),可以讓我看到打包的過(guò)程
tar -cvf abc.tar *.doc
-v (verbose)詳細(xì)列出處理的文件
現(xiàn)在我有一個(gè)名為abc.tar的包了,不過(guò)我剛才忘了將所有的jpg圖片也一起打包了,如何將它們加到abc.tar包里呢?
tar -rf abc.tar *.jpg 將所有的jpg文檔加入到名為abc.tar的包里
-r (append) 給已有的tar包增加文件
我把一幅名為pic01.jpg的文件重新編輯了,但是abc.tar里面的文件還是原來(lái)的沒(méi)有改變,我希望把包里的文件也更新一下。
tar -uf abc.tar pic01.jpg
-u (updata) 更新已有的tar包文件
現(xiàn)在包也打好了,文件也更新了,我想看看包里現(xiàn)在有什么內(nèi)容,所以敲進(jìn)
tar -tf abc.tar
-t (list) 查看tar包文件的內(nèi)容
我現(xiàn)在想把a(bǔ)bc.tar這個(gè)包里的文件都解開(kāi)來(lái)使用,那就用下面這條指令好了
tar -xf abc.tar
-x (extract) 解包
看著自己打好的包,心里挺高興的,這下備份文件就方便多了,只是這個(gè)包的文件很多,體積挺大的,也太占地方了,我的硬盤(pán)還想多放一部我喜歡的電影,所以要把這個(gè)包壓縮一下。
值得高興的是,tar已經(jīng)考慮到我的這種需要,可以在打包或解包的同時(shí)可以調(diào)用壓縮程序。現(xiàn)在我想調(diào)用老牌的壓縮程序gzip來(lái)壓縮我的打包文
件。gzip是GUN組織開(kāi)發(fā)的一個(gè)壓縮程序,它壓縮的文檔是以.gz結(jié)尾,與它相對(duì)的解壓程序是ungzip。我在終端敲進(jìn)了這樣一條指令
tar -czvf abcd.tar.gz *.doc 把所有的doc文檔打包,并調(diào)用gzip壓縮,生成一個(gè)gzip壓縮過(guò)的包,名字是abcd.tar.gz
-z (gzip,gunzip,ungzip)
這里順便說(shuō)一下,tar不僅可以調(diào)動(dòng)gzip壓縮,也可以調(diào)動(dòng)它來(lái)解包。
tar -xzvf abcd.tar.gz
生的的包體積比原來(lái)的小多了,不過(guò)還是不太合我意,要是可以更小一點(diǎn)就好了。這難不倒我,我現(xiàn)在用bzip2程序來(lái)壓縮它,bzip2的壓縮能力比gzip好多了,它壓縮出來(lái)的文件都有一個(gè).bz2的后綴,相對(duì)的解壓程序是bunzip2。
tar -cjvf abcd.tar.bz2 *.doc 把所有的doc文檔打包,并調(diào)用bzip2壓縮,生成一個(gè)bzip2壓縮過(guò)的包,名字是abcd.tar.bz2
-j (bzip2,bunzip2)
同樣道理,解包就用
tar -xjvf abcd.tar.bz2
還有一個(gè)壓縮程序就是compress,它壓縮出來(lái)的文檔有一個(gè)后綴.Z,相對(duì)的解壓程序是uncompress,當(dāng)然,我也可以用tar來(lái)調(diào)用它
tar -cZf abcd.tar.Z 把所有的doc文檔打包,并調(diào)用compress壓縮,生成一個(gè)compress壓縮過(guò)的包,名字是abcd.tar.Z
-Z (compress,uncompress)
同樣道理,解包就用
tar -xZf abcd.tar.Z
我現(xiàn)在的電腦里有好幾個(gè)壓縮包了,它們分別是abc.tar, abcd.tar.gz, abcd.tar.bz2, abcd.tar.Z, 我現(xiàn)在可以放心地把壓縮包收好備份了,需要用的時(shí)候再把它們解開(kāi)來(lái),這一點(diǎn)都不難。
沒(méi)打包的壓縮文件后綴一般就是.gz, .bz2, .Z,這和我上面用的三個(gè)壓縮程序是一樣的,不同的只是沒(méi)有.tar而已,壓縮和解壓就直接用相關(guān)的程序。
linux也提供對(duì)zip壓縮的支持,壓縮的程序是zip,解壓的程序是unzip.
zip abc.zip *.doc 把所有doc文檔壓縮成名為abc.zip的壓縮包
unzip abc.zip 解zip包
rar的話就要麻煩一點(diǎn),要上網(wǎng)去安裝一個(gè)rar for linux的軟件,安裝好以后會(huì)有rar和unrar兩個(gè)程序。
rar a abcd *.doc 把所有doc文檔壓縮成rar包
rar e abcd.rar 解rar包
linux下的壓縮文檔其實(shí)并沒(méi)有想象中的那樣復(fù)雜。復(fù)雜其實(shí)就是很多的簡(jiǎn)單。
轉(zhuǎn)貼于:http://forum.ubuntu.org.cn/weblog_entry.php?e=3020&tb=1&sid=ce10aaf32439f770bfc2d57c1cb0956a