Linux壓縮工具的效能比較

Michael_DD發表於2015-07-21
Linux壓縮工具的效能比較


一、Linux壓縮工具概述 


在Linux系統中,提供了許多壓縮工具,雖然方便,但也難免造成一些混亂。筆者透過一段時間的整理,將它們理一理順,希望能夠對大家有所幫助: 
首先,我們看一下下面這張“壓縮包副檔名與壓縮工具對應表”,大家透過這張表,就知道網上下載的壓縮包,該用什麼軟體來解了。 
工具名 壓縮包副檔名 
gzip/gunzip “.gz” 
compress/uncompress “.Z” 
zip/unzip “.zip” 
bzip2/bunzip2 “.bz2” 
lha “.lzh” 
接下來,我們透過例項,來測量一下它們的壓縮效率與效能: 


測試一: 
測試資料:原始檔是一個資料庫檔案,其大小為5,244,928; 
測試結果: 
gzip:19,136,2秒 
compress:17,769,1秒 
zip:19,261,2秒 
bzip2:1902,2秒 
測試二: 
測試資料:原始檔是一個/etc目錄的tar包,其大小為2,631,680; 
測試結果: 
gzip:551,736,2秒 
compress:877,391,3秒 
zip:551,856,3秒 
bzip2:478,512,11秒 
測試三: 
測試資料:原始檔是一個avi影片檔案,其大小為23,157,760; 
測試結果: 
gzip:17,151,395,43秒 
compress:壓縮失敗,43秒 
zip:17,151,509,42秒 
bzip2:16,587,991,2分40秒 
透過上面的實驗,我認為如果你需要高壓縮率,就選擇bzip2;否則最佳選擇就是gzip,它的價效比較好,而且是純正的自由軟體:gzip就是GNU zip! 
在LINUX/UNIX系統下,用這些壓縮軟體是不能直接對一個目錄進行打包,當您需要這樣做時,通常先使用tar進行歸檔,將整個目錄打包成為一個tar包,然後用壓縮軟體來壓縮。下面我們以備份/etc目錄下的所有檔案為例,說明一下: 
tar –cvf etc /etc (將在當前目錄生成一個etc.tar) 
gzip etc.tar (將會把etc.tar壓縮成為etc.tar.gz) 
關於tar的更多資訊,我們將專文說明。 
好了,說了這麼多,下面我們就一起逐一看一下這些壓縮工具的用法。 




二、Linux壓縮工具概述 


1.gzip和gunzip 
壓縮包副檔名:“.gz” 
特點: 
1)它是純正的自由軟體,效能不錯! 
2)若沒有加上任何引數,生成壓縮檔案後,會刪除原始檔案; 
命令使用: 
1) 壓縮一個檔案: 
gzip file 這樣將生成file.gz,刪除原檔案file; 
2) 壓縮一個檔案,並保留原始檔: 
gzip –c a > a.gz 
3) 提高壓縮率:gzip –9 file 
注:壓縮等級可以從1-9,數字越大壓縮效果越好,但要花的時間也越長,預設值為6。 
4) 解壓縮: 
gzip –d file.gz 或 
gunzip file.gz 
5) 顯示詳細資訊: 
gzip –v file 
6) 顯示版本資訊: 
gzip –V 


2.bzip2和bunzip2 
壓縮包副檔名:“.bz2” 
特點: 
1)它採用了新的壓縮演演算法,壓縮效果比傳統的LZ77/LZ78壓縮演演算法來得好; 
2)若沒有加上任何引數,生成壓縮檔案後,會刪除原始檔案; 
命令使用: 
1) 壓縮一個檔案: 
bzip2 file 這樣將生成file.bz2,刪除原檔案file; 
2) 壓縮一個檔案,並保留原始檔: 
bzip2 –k file 
3) 提高壓縮率:bzip –9 file 
注:壓縮等級可以從1-9,數字越大壓縮效果越好,但要花的時間也越長。 
4) 解壓縮: 
bzip2 –d file.bz2 或 
bunzip2 file.bz2 
5) 顯示詳細資訊: 
bzip2 –v file 
6) 顯示版本資訊: 
bzip2 –V 
相關工具: 
如果用bzip2壓縮的檔案出錯的話,你可以嘗試使用bzip2recover來恢復: 
bzip2recover file-bad.bz2 


3.compress和uncompress 
壓縮包副檔名:“.Z” 
特點: 
1)它是一個歷史悠久的壓縮程式,在許多UNIX系統中都可以找到; 
2)預設情況下,生成壓縮檔案後,會刪除原始檔案。 
命令使用: 
1) 壓縮一個檔案: 
compress file 
2) 壓縮一個檔案,並保留原始檔: 
compress –c a > a.Z 
3) 提高壓縮率:compress –b9 file 
注:壓縮等級可以從9-16,數字越大壓縮效果越好,但要花的時間也越長。預設值是16。 
4) 解壓縮: 
compress –d file.Z 或 
uncompress a.Z 
5) 顯示詳細資訊: 
compress –v file 
6) 顯示版本資訊: 
compress –V 


4.zip和unzip 
壓縮包副檔名:“.zip” 
特點: 
1)它是一個使用廣泛的壓縮程式,其版本橫跨十多種作業系統與硬體結構平臺; 
2)預設情況下,生成壓縮檔案後,不會刪除原始檔案。 
命令使用: 
1) 壓縮一個檔案: 
注意:如果要壓縮的是個資料夾,則要加上-r引數,表示呼叫遞迴壓縮,如: 
zip -r temp.zip temp 
zip zipfile file (zipfile是壓縮後的檔名,file要壓縮的檔名) 
2) 壓縮一個檔案,並刪除原始檔: 
zip –m file 
3) 提高壓縮率:zip –9 file 
注:壓縮等級可以從1-9,數字越大壓縮效果越好,但要花的時間也越長。預設值是6。 
4) 解壓縮: 
zip –d file.zip 或 
unzip file.zip 
5) 顯示詳細資訊: 
zip –v file 
6) 顯示版本資訊: 
zip –V 
相關工具: 
在Linux中,還提供了一個叫zipinfo的工具,能夠察看zip壓縮檔案的詳細資訊: 
zipinfo file.zip 




三、其它壓縮/解壓縮工具 


除了這四對壓縮/解壓縮工具外,在Linux下還有以下三種壓縮/解壓縮工具: 


1.lha 
lha是從lharc演變而來的壓縮程式,檔案經它壓縮後,會產生一個具有“.lzh”的副檔名。使用起來還是比較簡單的,而且它是可以直接將一個目錄打包的: 
1) 壓縮一個檔案: 
lha –a lhzfile file (lhzfile是壓縮後的檔名,file要壓縮的檔名) 
2) 解壓縮: 
lha –xiw=/tmp lhzfile (其中/tmp是解壓縮後的存放目錄,lhzfile是壓縮檔名) 
3) 壓縮一個目錄: 
lha –a lhzfile directory 


2.gzexe 
這是一個十分特殊的壓縮工具,它用來壓縮可執行檔案。當您執行被gzexe壓縮過的可執行檔案時,該檔案會自動解壓後繼續執行,和執行一般的可執行檔案一樣。 
當然這一過程會多佔用一些系統資源,只有你的可用磁碟空間十分有限時才建議使用。 
1) 壓縮 
gzexe program 
這樣會生成一個program~,為的是萬一壓縮失敗還能夠恢復,當你確定壓縮後可以使用後,應刪掉它,否則不就白壓縮了嗎? 
2) 解壓縮 
gzexe –d program 


3.unarj 
如果你有一些用arj壓縮的包的話,你可以使用unarj解開它,不過它只能夠解,卻無法執行壓縮。在Linux沒有提供arj壓縮工具。 
解壓時,很簡單:unarj e arjfile

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29500582/viewspace-1742805/,如需轉載,請註明出處,否則將追究法律責任。

相關文章