免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 822 | 回复: 0
打印 上一主题 下一主题

Linux下的压缩/解压缩工具 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-10 16:43 |只看该作者 |倒序浏览
一、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包,然后用压缩软件来压缩。

  
     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

附:tar(打包命令)
格式: tar 选项 文件目录列表     功能: 对文件目录进行打包备份
选项:
-c 建立新的归档文件           -r 向归档文件末尾追加文件
-x 从归档文件中解出文件       -O 将文件解开到标准输出
-v 处理过程中输出相关信息      -f 对普通文件操作
-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩
实例1: 目的:用tar打包一个目录下的文件  结果:产生一个以.tar为扩展名的打包文件
       命令:#tar -cvf ./a1.doc.tar ./a1.doc
实例2: 目的:用tar解开打包文件
       命令:#tar -xvf ./a1.doc.tar
附加说明:在通常情况下,tar打包与gzip(压缩)经常联合使用,效果更好。方法是:
首先用tar打包,如:#tar -cvf /mnt/lgx/a1.doc.tar /mnt/lgx/a1.doc (产生a1.doc.tar文件)
然后用gzip压缩a1.doc.tar文件,如:#gzip /mnt/lgx/a1.doc.tar (产生a1.doc.tar.gz文件)
实例3: 目的:解压a1.doc.tar.gz文件
方法1:
      #gzip -dc /mnt/lgx/a1.doc.tar.gz (产生a1.doc.tar文件)
      #tar -xvf /mnt/lgx/a1.doc.tar (产生a1.doc文件)
这两次命令也可使用管道功能,把两个命令合二为一:
      #gzip -dc /mnt/lgx/a1.doc.tar.gz | tar -xvf
方法2:使用tar提供的自动调用gzip解压缩功能
      #tar -xzvf /mnt/lgx/a1.doc.tar.gz
经过tar打包后,也可用compress命令压缩(注:gzip比compress压缩更加有效),产生一个以.tar.Z的文件,在解包时,可先用“uncompress 文件名”格式解压,然后用“tar -xvf 文件名”解包。也可直接调用“tar -Zxvf 文件名”解包。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13620/showart_229633.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP