【Linux学习笔记】13:压缩和解压缩命令(有关.tar.gz .tar.bz2)

时间:2021-02-23 16:35:35

上一节中学习的.gz和.bz2对目录处理都有些问题,Linux提供了.tar.gz和.tar.bz2方法可以解决这样的问题。这是通过把目录变成.tar的包,再用.gz和.bz2的方式对这个.tar包进行处理,从而得到了.tar.gz和.tar.bz2。

tar打包命令

tar [-c -v -f] [打包文件名] 源文件

选项:-c打包,-v显示过程,-f指定打包后的文件名
如对一个目录打包:

[root@bogon ~]# tar -cvf mulu.tar mulu

【Linux学习笔记】13:压缩和解压缩命令(有关.tar.gz .tar.bz2)
这时就可以把tar包压缩成gz格式了:

[root@bogon ~]# gzip mulu.tar

得到的就是.tar.gz了:
【Linux学习笔记】13:压缩和解压缩命令(有关.tar.gz .tar.bz2)
再解压然后压缩成bz2格式:

[root@bogon ~]# gzip -d mulu.tar.gz 
[root@bogon ~]# bzip2 mulu.tar

【Linux学习笔记】13:压缩和解压缩命令(有关.tar.gz .tar.bz2)

tar解包命令

tar -xvf 打包文件

选项:-x解包
先解压bz2再解tar包:

[root@bogon ~]# bunzip2 mulu.tar.bz2 
[root@bogon ~]# tar -xvf mulu.tar
mulu/
mulu/test1
mulu/test2

【Linux学习笔记】13:压缩和解压缩命令(有关.tar.gz .tar.bz2)

直接打包

“先打包再压缩/先解压再解包”用起来很不方便,tar命令支持一步完成。
①选项-z表示直接.tar.gz
一步压缩为.tar.gz:

tar -zcvf 压缩包名.tar.gz 源文件

一步解包.tar.gz:

tat -zxvf 压缩包名.tar.gz

尝试单步打包压缩成.tar.gz:

[root@bogon ~]# tar -zcvf mulu.tar.gz mulu

【Linux学习笔记】13:压缩和解压缩命令(有关.tar.gz .tar.bz2)
尝试单步解压解包.tar.gz:

[root@bogon ~]# tar -zxvf mulu.tar.gz 

【Linux学习笔记】13:压缩和解压缩命令(有关.tar.gz .tar.bz2)
②选项-j表示直接.tar.bz2
一步压缩为.tar.bz2:

tar -jcvf 压缩包名.tar.bz2 源文件

一步解包.tar.bz2:

tar -jxvf 压缩包名.tar.bz2

尝试单步打包压缩成.tar.bz2:

[root@bogon ~]# tar -jcvf mulu.tar.bz2 mulu

【Linux学习笔记】13:压缩和解压缩命令(有关.tar.gz .tar.bz2)
尝试单步解压解包.tar.bz2:

[root@bogon ~]# tar -jxvf mulu.tar.bz2 

【Linux学习笔记】13:压缩和解压缩命令(有关.tar.gz .tar.bz2)

解压到其它路径

解压命令 -C 目录

尝试解压到/tmp/中去:

[root@bogon ~]# tar -jxvf mulu.tar.bz2 -C /tmp/
mulu/
mulu/test1
mulu/test2
[root@bogon ~]# ls /tmp/
mulu yum.log

多文件一起压缩

压缩命令 文件1 [文件2 文件3...]

尝试压缩两个文件到另一个文件夹中去(加路径):

[root@bogon ~]# tar -zcvf /tmp/liangge.tar.gz lzhgb shuchu
lzhgb
shuchu
[root@bogon ~]# ls /tmp/
liangge.tar.gz yum.log

只查看文件内容而不解压

-c压缩,-x解压,-t只查看而不解压,可以有-ztvf和-jtvf分别对应.tar.gz和.tar.bz2两种格式。

[root@bogon ~]# tar -ztvf /tmp/liangge.tar.gz 
-rw-r--r-- root/root 0 2017-08-25 04:57 lzhgb
-rw-r--r-- root/root 351 2017-08-25 19:33 shuchu

在Linux中最常用的压缩格式是这节学的这两个,而不是上节学的那三个或者别的什么。