隨筆-314  評論-209  文章-0  trackbacks-0
          一、Linux壓縮工具概述

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

          接下來,我們通過實例,來測量一下它們的壓縮效率與性能:

          測試一:
          測試數(shù)據:源文件是一個數(shù)據庫文件,其大小為5,244,928;
          測試結果:
          gzip:19,136,2秒
          compress:17,769,1秒
          zip:19,261,2秒
          bzip2:1902,2秒
          測試二:
          測試數(shù)據:源文件是一個/etc目錄的tar包,其大小為2,631,680;
          測試結果:
          gzip:551,736,2秒
          compress:877,391,3秒
          zip:551,856,3秒
          bzip2:478,512,11秒
          測試三:
          測試數(shù)據:源文件是一個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系統(tǒng)下,用這些壓縮軟件是不能直接對一個目錄進行打包,當您需要這樣做時,通常先使用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)若沒有加上任何參數(shù),生成壓縮文件后,會刪除原始文件;

          命令使用:
          1) 壓縮一個文件:
          gzip file 這樣將生成file.gz,刪除原文件file;

          2) 壓縮一個文件,并保留源文件:
          gzip –c a > a.gz
          3) 提高壓縮率:gzip –9 file
          注:壓縮等級可以從1-9,數(shù)字越大壓縮效果越好,但要花的時間也越長,默認值為6。
          4) 解壓縮:
          gzip –d file.gz 或
          gunzip file.gz

          5) 顯示詳細信息:
          gzip –v file
          6) 顯示版本信息:
          gzip –V

          2.bzip2和bunzip2
          壓縮包擴展名:“.bz2”
          特點:
          1)它采用了新的壓縮演算法,壓縮效果比傳統(tǒng)的LZ77/LZ78壓縮演算法來得好;
          2)若沒有加上任何參數(shù),生成壓縮文件后,會刪除原始文件;
          命令使用:
          1) 壓縮一個文件:
          bzip2 file 這樣將生成file.bz2,刪除原文件file;
          2) 壓縮一個文件,并保留源文件:
          bzip2 –k file
          3) 提高壓縮率:bzip –9 file
          注:壓縮等級可以從1-9,數(shù)字越大壓縮效果越好,但要花的時間也越長。
          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系統(tǒng)中都可以找到;
          2)默認情況下,生成壓縮文件后,會刪除原始文件。
          命令使用:
          1) 壓縮一個文件:
          compress file
          2) 壓縮一個文件,并保留源文件:
          compress –c a > a.Z
          3) 提高壓縮率:compress –b9 file
          注:壓縮等級可以從9-16,數(shù)字越大壓縮效果越好,但要花的時間也越長。預設值是16。
          4) 解壓縮:
          compress –d file.Z 或
          uncompress a.Z
          5) 顯示詳細信息:
          compress –v file
          6) 顯示版本信息:
          compress –V

          4.zip和unzip
          壓縮包擴展名:“.zip”
          特點:
          1)它是一個使用廣泛的壓縮程序,其版本橫跨十多種操作系統(tǒng)與硬件結構平臺;
          2)默認情況下,生成壓縮文件后,不會刪除原始文件。
          命令使用:
          1) 壓縮一個文件:
          注意:如果要壓縮的是個文件夾,則要加上-r參數(shù),表示調用遞歸壓縮,如:
          zip -r temp.zip temp
          zip zipfile file (zipfile是壓縮后的文件名,file要壓縮的文件名)
          2) 壓縮一個文件,并刪除源文件:
          zip –m file
          3) 提高壓縮率:zip –9 file
          注:壓縮等級可以從1-9,數(shù)字越大壓縮效果越好,但要花的時間也越長。預設值是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
          這是一個十分特殊的壓縮工具,它用來壓縮可執(zhí)行文件。當您執(zhí)行被gzexe壓縮過的可執(zhí)行文件時,該文件會自動解壓后繼續(xù)執(zhí)行,和執(zhí)行一般的可執(zhí)行文件一樣。
          當然這一過程會多占用一些系統(tǒng)資源,只有你的可用磁盤空間十分有限時才建議使用。
          1) 壓縮
          gzexe program
          這樣會生成一個program~,為的是萬一壓縮失敗還能夠恢復,當你確定壓縮后可以使用后,應刪掉它,否則不就白壓縮了嗎?
          2) 解壓縮
          gzexe –d program

          3.unarj
          如果你有一些用arj壓縮的包的話,你可以使用unarj解開它,不過它只能夠解,卻無法執(zhí)行壓縮。在Linux沒有提供arj壓縮工具。
          解壓時,很簡單:unarj e arjfile
          posted on 2010-07-13 11:28 xzc 閱讀(537) 評論(0)  編輯  收藏 所屬分類: linux/unix
          主站蜘蛛池模板: 宾川县| 烟台市| 喜德县| 夏河县| 梁山县| 桃园县| 上林县| 灵丘县| 崇仁县| 封开县| 罗定市| 特克斯县| 天门市| 若尔盖县| 邻水| 射洪县| 乡城县| 策勒县| 南郑县| 贡觉县| 焉耆| 法库县| 肥西县| 青河县| 永德县| 平度市| 黔南| 蒙山县| 手游| 新野县| 申扎县| 凌海市| 随州市| 波密县| 濉溪县| 大埔县| 洛隆县| 桐梓县| 那曲县| 太白县| 长顺县|