已經有很多的關于linux壓縮文檔的文章,而且寫得非常好,不過我還是想再寫一篇,一來是對自己所學知識的一次檢驗,二來希望能寫得更加簡單明了。
我很喜歡linux,自由開源軟件也很精彩,只是初接觸linux時,被它眾多的壓縮文檔類型弄得不知所措而無從下手,如果一開始就學linux就不會覺 得有太大的困難,但是對于那些象我這樣剛從windows轉投linux懷抱的人來說,沒有了zip和rar就找不著北了,所以我迫切地想了解和熟悉 linux壓縮文檔。

首先要弄清楚的一個概念,就是打包和壓縮。打包就是將很多的目錄和文件捆成一個文件包,這其中并沒有壓縮的過程。linux里很多壓縮程序都是對單個文件進行壓縮的,所以要打包好以后再用壓縮程序將大文件壓縮成小文件以方便傳輸。

linux世界里常用的打包程序就是tar,用tar打包的出來的文件叫tar包,后綴是.tar。tar的詳細用法可以在終端用命令man tar來查看,命令的用法非常豐富,只是如果在這里一一羅列,就太繁瑣了,我不想把它搞得太復雜。

我有很多的doc文檔,想將它打成一個tar包,所以我在終端敲入了下面的這條指令
tar -cf abc.tar *.doc 將所有的doc文檔打成一個名為abc.tar的包
-c (create) 建立新的壓縮文檔
-f (file) 指定壓縮文檔的名字

打包的過程好象什么也沒有,機子到底在做了些什么?我很想看看在打包的過程中都處理了哪些文件,所以我給上面的打包命令加了一個參數,可以讓我看到打包的過程
tar -cvf abc.tar *.doc
-v (verbose)詳細列出處理的文件

現在我有一個名為abc.tar的包了,不過我剛才忘了將所有的jpg圖片也一起打包了,如何將它們加到abc.tar包里呢?
tar -rf abc.tar *.jpg 將所有的jpg文檔加入到名為abc.tar的包里
-r (append) 給已有的tar包增加文件

我把一幅名為pic01.jpg的文件重新編輯了,但是abc.tar里面的文件還是原來的沒有改變,我希望把包里的文件也更新一下。
tar -uf abc.tar pic01.jpg
-u (updata) 更新已有的tar包文件

現在包也打好了,文件也更新了,我想看看包里現在有什么內容,所以敲進
tar -tf abc.tar
-t (list) 查看tar包文件的內容

我現在想把abc.tar這個包里的文件都解開來使用,那就用下面這條指令好了
tar -xf abc.tar
-x (extract) 解包

看著自己打好的包,心里挺高興的,這下備份文件就方便多了,只是這個包的文件很多,體積挺大的,也太占地方了,我的硬盤還想多放一部我喜歡的電影,所以要把這個包壓縮一下。

值得高興的是,tar已經考慮到我的這種需要,可以在打包或解包的同時可以調用壓縮程序。現在我想調用老牌的壓縮程序gzip來壓縮我的打包文 件。gzip是GUN組織開發的一個壓縮程序,它壓縮的文檔是以.gz結尾,與它相對的解壓程序是ungzip。我在終端敲進了這樣一條指令
tar -czvf abcd.tar.gz *.doc 把所有的doc文檔打包,并調用gzip壓縮,生成一個gzip壓縮過的包,名字是abcd.tar.gz
-z (gzip,gunzip,ungzip)
這里順便說一下,tar不僅可以調動gzip壓縮,也可以調動它來解包。
tar -xzvf abcd.tar.gz

生的的包體積比原來的小多了,不過還是不太合我意,要是可以更小一點就好了。這難不倒我,我現在用bzip2程序來壓縮它,bzip2的壓縮能力比gzip好多了,它壓縮出來的文件都有一個.bz2的后綴,相對的解壓程序是bunzip2。
tar -cjvf abcd.tar.bz2 *.doc 把所有的doc文檔打包,并調用bzip2壓縮,生成一個bzip2壓縮過的包,名字是abcd.tar.bz2
-j (bzip2,bunzip2)
同樣道理,解包就用
tar -xjvf abcd.tar.bz2

還有一個壓縮程序就是compress,它壓縮出來的文檔有一個后綴.Z,相對的解壓程序是uncompress,當然,我也可以用tar來調用它
tar -cZf abcd.tar.Z 把所有的doc文檔打包,并調用compress壓縮,生成一個compress壓縮過的包,名字是abcd.tar.Z
-Z (compress,uncompress)
同樣道理,解包就用
tar -xZf abcd.tar.Z

我現在的電腦里有好幾個壓縮包了,它們分別是abc.tar, abcd.tar.gz, abcd.tar.bz2, abcd.tar.Z, 我現在可以放心地把壓縮包收好備份了,需要用的時候再把它們解開來,這一點都不難。
沒打包的壓縮文件后綴一般就是.gz, .bz2, .Z,這和我上面用的三個壓縮程序是一樣的,不同的只是沒有.tar而已,壓縮和解壓就直接用相關的程序。

linux也提供對zip壓縮的支持,壓縮的程序是zip,解壓的程序是unzip.
zip abc.zip *.doc 把所有doc文檔壓縮成名為abc.zip的壓縮包
unzip abc.zip 解zip包

rar的話就要麻煩一點,要上網去安裝一個rar for linux的軟件,安裝好以后會有rar和unrar兩個程序。
rar a abcd *.doc 把所有doc文檔壓縮成rar包
rar e abcd.rar 解rar包

linux下的壓縮文檔其實并沒有想象中的那樣復雜。復雜其實就是很多的簡單。

轉貼于:http://forum.ubuntu.org.cn/weblog_entry.php?e=3020&tb=1&sid=ce10aaf32439f770bfc2d57c1cb0956a