linux壓縮工具的比較

[分享] 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章