本文介绍linux下的压缩程序tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、 zip、 unzip、rar、unrar等程式,以及如何使用它们对.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、. tar.Z、.zip、.rar这10种压缩文件进行操作,最后介绍使用tar命令时参数的含义,英文解释,及常用选项组合.

一 首先要弄清两个概念:打包和压缩。
 
 
  打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。为什么要区分这两个概念呢?其实这源于
Linux中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另它的工具将这大堆文件先打成一个包,然后再就原来的
压缩程序进行压缩。
 
二 各种打包及压缩介绍 

  Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法:
 
 tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面来举例说明一下:

# tar -cf all.tar *.jpg

这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思以上就是tar的最基本的用法。为了方便用户在打包解包的同时可以压缩或解压文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压缩程序,比如调用gzip、bzip2等。
 
1) tar调用gzip

gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip
相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下:
# tar -czf all.tar.gz *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包,包名为all.tar.gz
# tar -xzf all.tar.gz
这条命令是将上面产生的包解开。
 
2) tar调用bzip2

bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例说明一下:
# tar -cjf all.tar.bz2 *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2
# tar -xjf all.tar.bz2
这条命令是将上面产生的包解开。
 
3)tar调用compress

compress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人多。.Z结尾的文件就是compress压缩的
结果。与 compress相对的解压程序是uncompress。tar中使用-Z这个参数来调用compress。下面来举例说明一下:
 
# tar -cZf all.tar.Z *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成
一个uncompress压缩过的包,包名为all.tar.Z
 
# tar -xZf all.tar.Z

这条命令是将上面产生的包解开有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文件作一个小结:

1)对于.tar结尾的文件
tar -xf all.tar
2)对于.gz结尾的文件
gzip -d all.gz
gunzip all.gz
3)对于.tgz或.tar.gz结尾的文件
tar -xzf all.tar.gz
tar -xzf all.tgz
4)对于.bz2结尾的文件
bzip2 -d all.bz2
bunzip2 all.bz2
5)对于tar.bz2结尾的文件
tar -xjf all.tar.bz2
6)对于.Z结尾的文件
uncompress all.Z
7)对于.tar.Z结尾的文件
tar -xZf all.tar.z

另外对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们:

1)对于.zip
linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
# zip all.zip *.jpg
这条命令是将所有.jpg的文件压缩成一个zip包
# unzip all.zip
这条命令是将all.zip中的所有文件解压出来
2)对于.rar

在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for
Linux不是免费的;可从http://www.rarsoft.com/download.htm下载RARfor Linux
3.2.0,然后安装:
 
# tar -xzpvf rarlinux-3.2.0.tar.gz
# cd rar
# make
 
这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
# rar a all *.jpg
 
这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar扩展名将自动附加到包名后。
# unrar e all.rar
这条命令是将all.rar中的所有文件解压出来.
 

此为至,我们已经介绍过linux下的tar、gzip、gunzip、bzip2、bunzip2、compress、 uncompress、
zip、unzip、rar、unrar等软件,你应该已经能够使用它们对.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.
Z、.tar.Z、.zip、.rar这10种压缩文
件进行解压了,以后应该不需要为下载了一个软件而不知道如何在Linux下解开而烦恼了。而且以上方法对于Unix也基本有效。

三 介绍tar各个参数含义

  因为tar参数较多,很多人刚接触时只是死记硬背,不知道选项其含义,我会在这里详细说明一下,让大家一目了然.

1、建立TAR包(打包)
命令格式:
tar cvf TAR包文件名.tar 所备份的文件或目录
功能描述:
tar cvf命令用于把指定的目录或文件打包到指定的文件
中。“c”指定建立(或压缩)TAR包,“v”设置命令执行时
有更多的提示信息,“f”指定TAR包的文件名。
c:create;v:verbose(冗长的);f:file
另外,在使用tar命令时,可以在cvf前面加上短
横线-,也可以不加。
但在使用Linux其他命令时,若在命令后跟的有
选项,必须在选项前面加上短横线-。 2、释放TAR包(又叫解包)
命令格式:
tar xvf TAR包文件名.tar
功能描述:
tar xvf命令用于释放指定的TAR包文件中的内容。“x”代
表释放(或解压)文件。x:extract(提取)。 注意:
tar本身只是打包,而不是压缩。只有加了一些选项
后,如:z、j等,才在打包的基础上进行压缩。
也即,.tar只是一个打包文件,而不是压缩文件。
若再在.tar后面跟上一些扩展名,如:.tar.gz(或.tgz)、
tar.bz2(或.tbz2)才是压缩文件,准确地说是打包加压缩 3、建立压缩的TAR包(先打包,再压缩)
命令格式:
tar zcvf 压缩TAR包文件名.tar.gz (或.tgz) 所备份的文件或目录名
功能描述:
“z”表示调用gzip压缩程序的功能,与c配合使用,表示能
够建立TAR包,并能建立压缩的TAR包。tar zcvf命令把指定
的目录或文件打包后,再进行压缩并保存到指定的文件。建
立压缩的TAR包文件的扩展名通常为.tar.gz 。z:gzip。 说明:在该tar命令中,使用了一个选项z,表示在执行
该tar命令的过程中,将调用gzip程序对首先产生的
music.tar文件包进行压缩。
所以,我们在指定命令格式中的“压缩TAR包文件名 ”
时,先指定扩展名.tar,然后再指定扩展名.gz。 4、释放压缩的TAR包(先解压,再解包)
命令格式:
tar zxvf 压缩TAR包文件名.tar.gz (或.tgz)
功能描述:
tar zxvf命令解压并释放指定的压缩TAR包文件中的
内容。“z”代表解压文件。 【
上述命令:
1、tar zcvf 压缩TAR包文件名.tar.gz(或.tgz) 所备份的文件或目录名
2、tar zxvf 压缩TAR包文件名.tar.gz(或.tgz)
是对扩展名为.tar.gz的文件进行压缩和解压操作的。 此外,还有扩展名为.tar.bz2(tbz2)的文件。此时所用的命令为:
//压缩
1、tar jcvf 压缩TAR包文件名.tar.bz2(或.tbz2) 所备份的文件或目录名
//解压
2、tar jxvf 压缩TAR包文件名.tar.bz2(或.tbz2)
】 5、查询TAR包中的文件
命令格式:
tar tf TAR包文件名.tar
功能描述:
tar tf命令显示指定TAR包中的文件目录列表,该命令用于
在释放TAR包之前了解其中所包含的文件。 6、查询压缩的TAR包中的文件
命令格式:
tar ztf TAR包文件名.tar.gz(或.tgz)
功能描述:
tar ztf命令显示指定压缩的TAR包中的文件目录列表,该命
令先调用gzip解压缩,然后再显示文件目录列表。

linux 压缩文件 及压缩选项详解的更多相关文章

  1. Linux 执行文件查找命令 which 详解

    某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: which  查看可执行文件的位置 whereis 查看文件的位置 locate   配合数据库查看文件位置 find   实际搜寻硬盘查 ...

  2. linux之文件查找find grep详解,以及压缩归档

    .find linux里的实时查找工具,通过制定路径完成文件查找. find[options]...[查找路径] [查找条件] [处理动作] 查找路径:查找的位置,默认是当前文件夹. 查找条件:指定查 ...

  3. linux日常管理-rsync常用选项详解

    -av 同步目录 写法 123/   /tmp/333/ 意思是把123下的文件同步到/tmp/333/下  结尾不加/ 只同步目录 两个目录一样的. //////////////////////// ...

  4. linux切割文件【split命令详解】

    linux查看帮助 [tomcat-nohup]$ split --help 用法:split [选项]... [输入 [前缀]] 将输入内容拆分为固定大小的分片并输出到"前缀aa" ...

  5. Linux下文件完整性监控工具Tripwire详解

    Tripwire 是目前最为著名的Unix下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来.当文件现在的数字签名与保留的数字签名不一致时,那么现在 ...

  6. linux 内核 编绎配制选项详解

    http://blog.sina.com.cn/s/blog_8308bc810102ux0j.html

  7. Linux系统控制文件 /etc/sysctl.conf详解

    /etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sysctl.conf参数解释: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...

  8. linux dd命令参数及用法详解---用指定大小的块拷贝一个文件(也可整盘备份)

    linux dd命令参数及用法详解---用指定大小的块拷贝一个文件 日期:2010-06-14 点击:3830 来源: 未知 分享至:            linux dd命令使用详解 dd 的主要 ...

  9. Linux文件权限与属性详解 之 chattr & lsattr

    Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...

  10. Linux下文件的压缩与解压缩

    一.zip格式 zip可能是目前使用的最多的文档压缩格式.它最大的优点就是在不同的操作系统平台上使用.缺点就是支持 的压缩率不是很高,而tar.gz和tar.bz2在压缩率方面做得非常好. 我们可以使 ...

随机推荐

  1. hdu-5698 瞬间移动(数论+快速幂)

    题目链接: 瞬间移动 Problem Description   有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次你都可以选择一个右下方格子,并瞬移过去(如从下图中的红色格子能直接瞬移到蓝 ...

  2. 转: 数字证书原理 https 完整过程解析

    点评: 讲的非常的详细与全面,值得一看. 转: http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html 文中首先解释了加密解 ...

  3. orcale 列改为大字段

    --添加临时列ALTER TABLE MPD_TASK_LIST ADD(  CLOB_TEMP clob);--数据拷贝到临时列update MPD_TASK_LIST set CLOB_TEMP ...

  4. 一分钟加入google站内搜索代码

    一分钟加入google站内搜索代码| 一分钟加入google站内搜索代码|只有7行最精简.网上有很多 google 站内搜索代码,但是出于某些目的,很多都加入了多余的代码,从seo的角度来讲,是很不优 ...

  5. backbone.Router History源码笔记

    Backbone.History和Backbone.Router history和router都是控制路由的,做一个单页应用,要控制前进后退,就可以用到他们了. History类用于监听URL的变化, ...

  6. 深入浅出ExtJS 第四章 表单与输入控件

    4.1 制作表单 var form = new Ext.form.FormPanel({ title:'form', defaultType:'textfield', buttonAlign:'cen ...

  7. 正则表达式删除指定的HTML 标签

    1.抓取某网页的数据后(比如描述),如果照原样显示的话,可能会因为它里面包含没有闭合的HTML标签而打乱了格式,也可能它里面用了比较让人 "费解" 的HTML标签,把预订的格式搅乱 ...

  8. Part 89 to 91 Talking about pass the parameters in thread

    Part 89   ParameterizedThreadStart delegate Use ParameterizedThreadStart delegate to pass data to th ...

  9. 查询sql 并且读取

    //显示地址 //VBSBegin // Set obj = GetObject("winmgmts:\\.\root\cimv2") // Set IPConfigSet = o ...

  10. Linux中RM快速删除大量文件/文件夹方法

    昨天遇到一个问题,在Linux中有一个文件夹里面含有大量的Cache文件(夹),数量级可能在百万级别,使用rm -rf ./* 删除时间慢到不可接受.Google了一下,查到了一种方法,试用了下确实比 ...