zhiyinjixu

  博客园  :: 首页  ::  :: 联系 ::  :: 管理

 摘要:在Linux系统中,提供了许多压缩工具,虽然方便,但也难免造成一些混乱。
  
  一、Linux压缩工具概述
  
    在Linux系统中,提供了许多压缩工具,虽然方便,但也难免造成一些混乱。笔者通过一段时间的整理,将它们理一理顺,希望能够对大家有所帮助:
  
    首先,我们看一下下面这张“压缩包扩展名与压缩工具对应表”,大家通过这张表,就知道网上下载的压缩包,该用什么软件来解了。
  
     工具名压缩包扩展名
  
   gzip/gunzip “.gz”
   compress/uncompress “.Z”
   zip/unzip “.zip”
   bzip2/bunzip2 “.bz2”
   lha “.lzh”
  
    接下来,我们通过实例,来测量一下它们的压缩效率与性能:

  
    测试一:
  
    测试数据:源文件是一个数据库文件,其大小为5,244,Array28;
  
    测试结果:
  
   gzip:1Array,136,2秒
   compress:17,76Array,1秒
   zip:1Array,261,2秒
   bzip2:1Array02,2秒
  
    测试二:
  
    测试数据:源文件是一个/etc目录的tar包,其大小为2,631,680; 中国.网管联盟 
  
    测试结果:
  
   gzip:551,736,2秒
   compress:877,3Array1,3秒
   zip:551,856,3秒
   bzip2:478,512,11秒
  
    测试三:
  
    测试数据:源文件是一个avi视频文件,其大小为23,157,760;
  
    测试结果:
  
   gzip:17,151,3Array5,43秒
   compress:压缩失败,43秒
   zip:17,151,50Array,42秒
   bzip2:16,587,ArrayArray1,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的更多信息,我们将专文说明。
  
    好了,说了这么多,下面我们就一起逐一看一下这些压缩工具的用法。 bitscn.com 

 


  
    二、Linux压缩工具概述
  
    1.gzip和gunzip
  
    压缩包扩展名:“.gz”
  
    特点:
  
     1)它是纯正的自由软件,性能不错!
  
     2)若没有加上任何参数,生成压缩文件后,会删除原始文件;
  
    命令使用:
  
     1) 压缩一个文件:gzip file 这样将生成file.gz,删除原文件file;
  
     2) 压缩一个文件,并保留源文件:gzip ?c a > a.gz
  
     3) 提高压缩率:gzip ?Array file 注:压缩等级可以从1-Array,数字越大压缩效果越好,但要花的时间也越长,默认值为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 ?Array file注:压缩等级可以从1-Array,数字越大压缩效果越好,但要花的时间也越长。
  
     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

bbs.bitsCN.com


  
     3) 提高压缩率:compress ?bArray file 注:压缩等级可以从Array-16,数字越大压缩效果越好,但要花的时间也越长。预设值是16。
  
     4) 解压缩:compress ?d file.Z 或uncompress a.Z
  
     5) 显示详细信息:compress ?v file
  
     6) 显示版本信息:compress ?V 
  
    4.zip和unzip 
  
    压缩包扩展名:“.zip”
  
    特点:
  
     1)它是一个使用广泛的压缩程序,其版本横跨十多种操作系统与硬件结构平台;
  
     2)默认情况下,生成压缩文件后,不会删除原始文件。
  
    命令使用:
  
     1) 压缩一个文件:zip zipfile file (zipfile是压缩后的文件名,file要压缩的文件名)
  
     2) 压缩一个文件,并删除源文件:zip ?m file
  
     3) 提高压缩率:zip ?Array file 注:压缩等级可以从1-Array,数字越大压缩效果越好,但要花的时间也越长。预设值是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压缩过的可执行文件时,该文件会自动解压后继续执行,和执行一般的可执行文件一样。
  
    当然这一过程会多占用一些系统资源,只有你的可用磁盘空间十分有限时才建议使用。 bitsCN.nET中国网管博客 
  
    1) 压缩gzexe program这样会生成一个program~,为的是万一压缩失败还能够恢复,当你确定压缩后可以使用后,应删掉它,否则不就白压缩了吗?
  
    2) 解压缩gzexe ?d program
  
    3.unarj 如果你有一些用arj压缩的包的话,你可以使用unarj解开它,不过它只能够解,却无法执行压缩。在Linux没有提供arj压缩工具。
  
    解压时,很简单:unarj e arjfile

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


  

posted on 2011-11-15 08:32  zhiyinjixu  阅读(402)  评论(0)    收藏  举报