Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2124227
  • 博文数量: 288
  • 博客积分: 10594
  • 博客等级: 上将
  • 技术积分: 3469
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-27 19:27
文章分类

全部博文(288)

文章存档

2012年(4)

2011年(30)

2010年(40)

2009年(32)

2008年(71)

2007年(79)

2006年(32)

分类: LINUX

2006-11-11 12:48:45

   
  一、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)   压缩一个文件:    
  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
阅读(5226) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~