上一节中学习的.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
这时就可以把tar包压缩成gz格式了:
[root@bogon ~]# gzip mulu.tar
得到的就是.tar.gz了:
再解压然后压缩成bz2格式:
[root@bogon ~]# gzip -d mulu.tar.gz
[root@bogon ~]# bzip2 mulu.tar
tar解包命令
tar -xvf 打包文件
选项:-x解包
先解压bz2再解tar包:
[root@bogon ~]# bunzip2 mulu.tar.bz2
[root@bogon ~]# tar -xvf mulu.tar
mulu/
mulu/test1
mulu/test2
直接打包
“先打包再压缩/先解压再解包”用起来很不方便,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
尝试单步解压解包.tar.gz:
[root@bogon ~]# tar -zxvf mulu.tar.gz
②选项-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
尝试单步解压解包.tar.bz2:
[root@bogon ~]# tar -jxvf mulu.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中最常用的压缩格式是这节学的这两个,而不是上节学的那三个或者别的什么。