打包和压缩及常见解压缩方法

对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rar。可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip和.rar的人就太少了。

  在具体总结各类压缩文件之前呢,首先要 弄清两个概念:打包和压缩。打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。为什么要区分这两个概念呢?其实这源于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包中所有文件,-t是解开的意思

  以上就是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结尾的文件就是bzip2压缩的结果。与compress相对的解压程序是uncompress。tar中使用-Z这个参数来调用gzip。下面来举例说明一下:

  # 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

不是免费的;可从

下载RAR for 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中的所有文件解压出来

  对.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip、.rar这10种压缩文件进行解压了,以后应该不需要为下载了一个软件而不知道如何在Linux下解开而烦恼了。而且以上方法对于Unix也基本有效。

 下面就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

解压: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

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

.tgz

解压:tar zxvf FileName.tgz

压缩:未知

.tar.tgz

解压:tar zxvf FileName.tar.tgz

压缩:tar zcvf FileName.tar.tgz FileName

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

.a

解压:#tar xv file.a

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

.cpio.gz/.cgz

解压:gzip -dc file.cgz | cpio -div

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

.cpio/cpio

解压:cpio -div file.cpio 或cpio -divc file.cpio

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

.rpm

安装: rpm -i file.rpm

解压:rpm2cpio file.rpm | cpio -div

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

.deb

安装: dpkg -i file.deb

解压:dpkg-deb --fsys-tarfile file.deb | tar xvf - ar p file.deb data.tar.gz | tar xvzf

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

.zip

解压:unzip FileName.zip

压缩:zip FileName.zip DirName

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

.rar

解压:rar a FileName.rar

压缩:rar e FileName.rar

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

.lha

解压:lha -e FileName.lha

压缩:lha -a FileName.lha FileName

GZIP压缩(速度较慢压缩比例高):

tar -zcf 目标路径文件名 要打包的文件或者目录

不压缩打包(速度与COPY文件相同,不压缩):

tar -cf 目标路径文件名 要打包的文件或者目录

如:

tar -zcf /home/web/1.tar.gz /home/web/

用法:     rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件…>

               <@列表文件…> <解压路径\>

过滤打包方法

tar –exclude {被过滤文件+路径} -zcvf {打包的文件名} {打包目录}

<命令>

a             添加文件到压缩文件

c             添加压缩文件注释

cf            添加文件注释

cw            写入压缩文件注释到文件

d             删除压缩文件中的文件

e             解压压缩文件到当前目录

f             刷新压缩文件中的文件

i[参数]=<串> 在压缩文件中查找字符串

k             锁定压缩文件

l[t,b]        列出压缩文件[技术信息,简洁]

m[f]          移动到压缩文件[仅对文件]

p             打印文件到标准输出设备

r             修复压缩文件

rc            重建丢失的卷

rn            重命名压缩文件

rr[N]         添加数据恢复记录

rv[N]         创建恢复卷

s[名字|-]     转换压缩文件为自解压格式或转换回压缩文件

t             测试压缩文件

u             更新压缩文件中的文件

v[t,b]        详细列出压缩文件[技术信息,简洁]

x             用绝对路径解压文件

<开关>

-             停止扫描

ac            压缩或解压后清除文件属性

ad            添加压缩文件名到目标路径

ag[格式]      使用当前日期生成压缩文件名

ao            添加具有压缩属性的文件

ap<格式>      添加路径到压缩文件中

as            同步压缩文件内容

av            添加用户身份校验(仅注册版本可用)

av-           禁用用户身份校验

c-            禁用注释显示

cfg-          禁用读取配置

cl            名称转换为小写

cu            名称转换为大写

df            压缩后删除文件

dh            打开共享文件

ds            对固实压缩文件禁用名称排序

e<属性>       设置文件排除属性

ed            不添加空目录

en            不添加”压缩文件结束”标志

ep            从名称中排除路径

ep1           从名称中排除基本目录

ep2           展开为完整路径

f             刷新文件

hp[密码]      同时加密文件数据和文件头

idp           禁用百分比显示

ieml[属性]    用 E-mail 发送压缩文件

ierr          发送所有消息到标准错误设备

ilog[名称]    把错误写到日志文件(只有注册版本可用)

inul          禁用所有消息

ioff          完成一个操作后关闭 PC 电源

isnd          启用声音

k             锁定压缩文件

kb            保留损坏的已解压文件

m<0..5>       设置压缩级别(0-存储…3-默认…5-最大)

mc<参数>      设置高级压缩参数

md<大小>      以KB为单位的字典大小(64,128,256,512,1024,2048,4096 or A-G)

ms[ext;ext]   指定存储的文件类型

o+            覆盖已存在文件

o-            不覆盖已存在文件

os            保存 NTFS 流

ow            保存或恢复文件所有者和组

p[密码]       设置密码

p-            不询问密码

r             递归子目录

r0            仅递归通配符名称的子目录

rr[N]         添加数据恢复记录

rv[N]         创建恢复卷

s[,v[-],e] 创建固实压缩文件

s-            禁用固实压缩文件

sfx[名称]     创建自解压压缩文件

st[名称]      从标准输入设备读取数据

t             压缩后测试文件

ta<日期>      添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS

tb<日期>      添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS

tk            保留原始压缩文件时间

tl            设置压缩文件时间为最新文件时间

tn<时间>      添加 <时间> 以后的文件

to<时间>      添加 <时间> 以前的文件

ts[N] 保存或恢复文件时间(修改,创建,访问)

u             更新文件

v             自动检测创建卷的大小或者列出所有的卷

v<大小>[k,b] 创建卷大小=<大小>*1000 [*1024, *1]

vd            创建容量前清除磁盘内容

ver[n]        文件版本控制

vn            使用旧风格的卷命名方案

vp            每卷之前暂停

w<路径>       指定工作目录

x<文件>       排除指定的文件

x@            从标准输入设备读取要排除的文件名

x@<列表>      排除指定列表文件中的文件

y             假设对全部询问都回答是

z<文件>       从文件读取压缩文件注释

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值