Linux下的压缩/解压缩工具(转贴2篇)

    总是记不住tar命令的参数顺序,tar命令的执行讲究参数的顺序,如: tar -xfzv filename 就是错误的,执行如下:

[root@localhost tool]# tar -xfzv firefox-1.5.0.2.tar.gz

tar: zv: Cannot open: 没有那个文件或目录

tar: Error is not recoverable: exiting now

还有前面加不加"-",好像没有区别,如下两个命令是一样的不知是怎么一回事:

tar -xzvf firefox-1.5.0.2.tar.gz

和tar xzvf firefox-1.5.0.2.tar.gz

我在linux下常用的几种压缩、解压软件(实际上下面的第一篇转帖中都有):

1)压缩: tar cfvz FileName.tar.gz  DirName

  解压: tar xfvz FileName.tar.gz

2)压缩:rar a FileName.rar DirName

  解压: rar x FileName.rar

3)压缩: zip -r FileName.zip DirName (下面的转帖中少了一个参数 -r,不能压缩文件夹内的全部文件)

  解压: unzip FileName.zip

下面是我对一个包含主要是htm文件和gif等图片文件的目录的各种压缩格式的压缩率比较。

原目录的大小是8445952bytes,

命令: tar cfv /home/mdx/wisdom_compress/wisdom.tar ./wisdom 生成的打包文件wisdom.tar大小是8222729bytes,与原目录大小差不多;

命令:rar a /home/mdx/wisdom_compress/wisdom.rar ./wisdom 生成的压缩文件wisdom.rar大小为4015632bytes;

命令:zip -r /home/mdx/wisdom_compress/wisdom.zip ./wisdom 生成的压缩文件wisdom.zip大小为4272032bytes,和上面用rar软件生成的wisdom.rar大小差不多;

命令:tar cfvz ./wisdom_compress/wisdom.tar.gz wisdom 生成的打包压缩文件wisdom.tar.gz大小为2842023bytes;

命令:tar cfvj ./wisdom_compress/wisdom.tar.bz wisdom生成的打包压缩文件wisdom.tar.bz大小为2589155bytes,和上面用tar cfvz生成的wisdom.tar.gz差不多;

所以,就缺省的方式来说,tar的压缩效果在文本文件为主的目录中要好于rar和zip软件。

下面是统计的具体例子:


[mdx@localhost mdx]$ du -sb ./wisdom

8445952 ./wisdom

[mdx@localhost mdx]$ ls -la ./wisdom_compress/

总用量 24066

drwxrwxr-x    2 mdx      mdx          1024  2月 26 15:49 .

drwx------   26 mdx      mdx          5120  2月 26 11:57 ..

-rw-rw-r--    1 mdx      mdx       4015632  2月 26 15:47 wisdom.rar

-rw-rw-r--    1 mdx      mdx       8222720  2月 26 15:49 wisdom.tar

-rw-rw-r--    1 mdx      mdx       2589155  2月 26 11:09 wisdom.tar.bz

-rw-rw-r--    1 mdx      mdx       2589155  2月 26 11:22 wisdom.tar.bz2

-rw-rw-r--    1 mdx      mdx       2842023  2月 26 11:02 wisdom.tar.gz

-rw-rw-r--    1 mdx      mdx       4272032  2月 26 15:20 wisdom.zip

[mdx@localhost mdx]$

One thought on “Linux下的压缩/解压缩工具(转贴2篇)”

  1. 两篇关于linux下压缩和解压缩的转帖。

    ××××××××××××××××××××××××××××××××××××××××

    一、

    linux 压缩解压方法(http://www.xomud.net/html/200602/12829.html)

    作者: amra  发布日期: 2006-2-15    查看数: 77   出自: http://www.xomud.net

    大致总结了一下linux下各种格式的压缩包的压缩、解压方法。但是部分方法我没有用到,也就不全,希望大家帮我补充,我将随时修改完善,谢谢!

    .tar

    解包:tar xvf FileName.tar

    打包:tar cvf FileName.tar DirName

    (注:tar是打包,不是压缩!)

    ---------------------------------------------

    .gz

    解压1:gunzip FileName.gz

    解压2:gzip -d FileName.gz

    压缩:gzip FileName

    .tar.gz 和 .tgz

    解压:tar zxvf FileName.tar.gz

    压缩:tar zcvf FileName.tar.gz DirName

    ---------------------------------------------

    .bz2

    解压1:bzip2 -d FileName.bz2

    解压2:bunzip2 FileName.bz2

    压缩: bzip2 -z FileName

    .tar.bz2

    解压:tar jxvf FileName.tar.bz2

    压缩:tar jcvf FileName.tar.bz2 DirName

    ---------------------------------------------

    .bz

    解压1:bzip2 -d FileName.bz

    解压2:bunzip2 FileName.bz

    压缩:未知

    .tar.bz

    解压:tar jxvf FileName.tar.bz

    压缩:未知

    ---------------------------------------------

    .Z

    解压:uncompress FileName.Z

    压缩:compress FileName

    .tar.Z

    解压:tar Zxvf FileName.tar.Z

    压缩:tar Zcvf FileName.tar.Z DirName

    ---------------------------------------------

    .zip

    解压:unzip FileName.zip

    压缩:zip FileName.zip DirName

    ---------------------------------------------

    .rar

    解压:rar x FileName.rar

    压缩:rar a FileName.rar DirName

    rar请到:http://www.rarsoft.com/download.htm 下载!

    解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):

    [root@www2 tmp]# cp rar_static /usr/bin/rar

    ---------------------------------------------

    .lha

    解压:lha -e FileName.lha

    压缩:lha -a FileName.lha FileName

    lha请到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下载!

    >解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):

    [root@www2 tmp]# cp lha /usr/bin/

    ---------------------------------------------

    .rpm

    解包:rpm2cpio FileName.rpm | cpio -div

    ---------------------------------------------

    .deb

    解包:ar p FileName.deb data.tar.gz | tar zxf -

    ---------------------------------------------

    .tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea

    解压:sEx x FileName.*

    压缩:sEx a FileName.* FileName

    sEx只是调用相关程序,本身并无压缩、解压功能,请注意!

    sEx请到: http://sourceforge.net/projects/sex下载!

    解压后请将sEx拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):

    [root@www2 tmp]# cp sEx /usr/bin/

    参考文献:Linux 文件压缩工具指南

    (其实看帮助是最好的方法,一般各个命令都可以用“--help”参数得到常用使用方法!)

    *************************************************************************************

    二、

    Linux下的压缩/解压缩工具(转自:http://www.linuxaid.com.cn/articles/9/3/930978289.shtml)

        摘要

          在Linux系统中,提供了许多压缩工具,虽然方便,但也难免造成一些混乱。

        (2002-08-22 11:00:21)

    By Wing, 出处:fjxufeng(风过留枫)

      一、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

      好了,先说到这,有什么疑问可到LinuxAid技术论坛找我,fjxufeng@linuxaid.com.cn。

Comments are closed.