深入理解tar包的压缩与解压

对于tar包、压缩包等相关概念的深入解释

  • tar 命令用来打包
  • gzip、bzip命令用来压缩、解压缩

起初tar命令并不具备压缩功能,其仅仅是个打包工具,因为有的时候目录文件是不可以在某些地方进行传输的,所以需要打包成一个包文件,还有一个原因就是,目录文件是不可以直接进行压缩的,所以需要先打包一下
后来因为传输需要进行压缩,这样一来能快速传输,二来可以节省空间,所以可以使用压缩工具对包进行压缩,产生以.gz.bz2结尾的压缩文件
至此相当于经历了打包和压缩两个步骤,但是实际应用中,总是分两步来做就显得有些麻烦,于是tar命令有了参数可以使用,这些参数有:

参数作用
-c(小写)创建压缩文件
-x解开压缩文件
-t查看压缩包内有哪些文件
-z用Gzip格式压缩或者解压
-j(小写)用bzip2格式压缩或者解压
-J(大写)用xz格式进行压缩或者解压
-v显示压缩或者解压的过程
-f目标文件名
-p(小写)保留原始的权限与属性
-P(大写)使用绝对路径来压缩
-C(大写)指定解压到的目录

其中需要额外解释的是,-v参数一般情况下最好加一下,因为有时候,执行压缩或者解压缩操作时,可能需要花费比较长的时间,如果屏幕一直没有输出,一方面不好判断进度情况,另一方面也会怀疑电脑是不是死机了。
-f参数也很重要,必须放在参数的最后一位,代表要压缩或者解压到哪个指定的目录

下面前后对比一下tar命令有了参数前后的变化
1、首先是没有用tar的压缩参数:

tar命令
gzip命令
bzip2命令
xx
xx.tar
xx.tar
xx.tar.gz
xx.tar
xx.tar.bz2

根据上述流程,可以看到主要分成了两步,第一步是tar命令打包成包文件,第二部是进行压缩(有.gz和.bz2两种格式可以选择)
2、因为tar命令有参数,加了参数后就可以直接打包压缩:

tar加-z参数
tar加-j参数
xx.tar
xx.tar.gz
xx.tar
xx.tar.bz2

显而易见,第二种方式比较方便,可以将打包与压缩合并一起进行,只需要在使用tar命令时选择适当参数即可

一般地可以这样使用

[root@localhost ~]# tar -czvf  etc.tar.gz  /etc/		#将/etc/下的文件以Gzip格式压缩,压缩过程进行显示,压缩后名字为etc.tar.gz
#此命令压缩之后的etc.tar.gz文件被保存在当前目录下

[root@localhost ~]# tar -cjvf  etc.tar.bz2  /etc/		#将/etc/下的文件以bzip2格式压缩,压缩过程进行显示,压缩后名字文etc.tar.bz2
#压缩后的etc.tar.bz2文件被保存在当前目录下

[root@localhost ~]# tar -xzvf  etc.tar.gz  -C  /root/etc		#将etc.tar.gz文件以Gzip格式解压,解压过程进行显示,解压到/root/etc下

[root@localhost ~]# tar -xjvf  etc.tar.bz2  -C  /root/etc		#将etc.tar.bz2文件以bzip2格式解压,解压过程进行显示,解压到/root/etc下

总结:
tar打包和(Gzip、bz2)压缩实际上根本没有半毛钱关系,只是tar命令顺带帮你提供了压缩、解压的参数而已

  • 需要注意的是:
    假如有一个文件名为xxx.gz,根据后缀可以判断出来,其并不是由tar包进行压缩得来的包压缩文件,而是直接由一个不是文件夹(目录)的文件直接压缩得到的普通压缩文件,所以这个时候对其进行解压,不应使用tar -xzvf,而是使用gunzip解压
    xxx.bz2的文件也是同样的道理,对其进行解压不应使用tar -xjvf,而是使用bunzip2进行解压

  • 另外需要注意的还有:
    单纯就压缩与解压而言,除了Gzip–>.gz、bz2–>.bz2的方式进行压缩之外,还有zip–>.zip的压缩方式,同时这种压缩格式也经常出现在windows平台上

其他的压缩与解压方式、格式还有很多,不一一列举,仅举以上常用的格式,相信这个对于tar包和压缩的深入理解,会利于快速掌握对应的命令,否则死记硬背很容易忘记

–>有助于理解压缩包解压工具,建议收藏<–

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jinbao_x

谢谢你的认可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值