首页 > 代码库 > 烂泥:CentOS命令学习之tar打包与解压

烂泥:CentOS命令学习之tar打包与解压

本文由秀依林枫提供友情赞助,首发于烂泥行天下

tar命令一般是做打包和解压使用,有关tar命令的使用。我们可以通过帮助文档进行查看,如下:

tar –help

man tar

clip_image001

clip_image002

tar有几个比较重要的参数如下:

-c 创建一个新归档

-f 当与-c选项一起使用时,创建的tar文件使用该选项的指定的文件名;当与-x选项一起使用时,则解包该选项指定的归档。该参数一定放在所有参数的最后面

-t 显示tar文件中的文件列表

-v 显示归档或解档的进度

-z 使用gzip来压缩tar文件

-j 使用bzip2来压缩tar文件

-x 解压tar压缩包,

-C 解压到新的目录,该命令是大写。

-p 保留备份数据的原本权限和属性

以上命令需要特别注意-c、-t、-x不能在一个命令中同时出现

现在我们先来讲解tar打包的使用方法。注意在此我们全部以gzip格式的文件为例,如果是bzip文件把参数-z修改为-j即可。

将ilanni目录进行打包,打包后的文件为ilanni.tar.gz,并将打包后存放到/testtar目录下:

tar -cvzf /testtar/ilanni.tar.gz ilanni

或者

tar -czf /testtar/ilanni.tar.gz ilanni

其中参数-v是可有可无。

clip_image003

clip_image004

通过上述两张图片我们可以看出,已经打包成功。刚刚是把本地的文件打包到其他目录,如果把A目录下的文件打包到B目录如下:

tar -czf /testtar/tar.tar.gz /tar

clip_image005

该条命令的作用是把/tar目录进行打包,打包完成后以tar.tar.gz命名文件存放到/testtar目录下。

以上都是在同一台服务器上进行的,如果我想把本地的文件打包后,上传到另外一台服务器上。操作如下:

ssh root@192.168.1.102 tar -czf /ks/tar.tar.gz /tar/

该条命令的意思是把/tar目录打包到192.168.1.102服务器的/ks目录下。

clip_image006

clip_image007

通过上述两张截图,我们可以看到已经成功的把/tar打包到192.168.1.102服务器的/ks目录下。

上面是对目录进行打包,如果是对单独的文件进行打包也很简单。我们来测试下,如果两个文件在不同的目录,打包到一个压缩包中。如下

tar -zvcf test.tar.gz ./tftp.txt ./ilanni/iso.txt

tar -tvf test.tar.gz

clip_image008

通过上面这张截图,我们可以很清楚的看出。我们现在已经把当前目录下的tftp.txt文件和该目录下的ilanni目录下的iso.txt文件打包到同一个压缩包中。

以上是有关tar打包的相关使用方法。下面我们来介绍使用tar解压压缩包的方法。按照网络上的说法对于不同的压缩包比如gzip压缩包和bzip2压缩包,我们再解压时,要使用不同的命令。

对于gzip压缩包,使用tar –zxf ilanni.tar.gz解压。对于bzip压缩包,使用tar –jxf ks.bz2解压。

其实根本没有那个必要,只要是tar压缩包,我们直接使用tar –xf进行解压即可。如下:

tar -xf ilanni.tar.gz

tar -xf ks.bz2

clip_image009

通过上图,我们可以看到只要是tar压缩包的解压我们就可以直接使用tar -xf进行解压。

以上我们是把压缩包解压到同一目录下,下面我们来测试下把压缩包解压到另外一个目录。如下:

tar -xf ilanni.tar.gz -C /testtar/

该条命令的意思是把当前目录下ilanni.tar.gz解压到/testtar/目录下。

clip_image010

通过上图,我们可以看到ilanni.tar.gz已经成功的解压到/testtar/目录下。

以上我们解压的是整个目录,假如说这个压缩包是一个文件夹的话,而里面又有很多的文件,我们现在只想把其中的一个文件解压出来。操作如下:

先查看该压缩包的目录结构,使用如下命令:

tar -tvf ilanni.tar.gz

clip_image011

注意图中黄色部分标记出来的ilanni/tftp.txt,我们现在就是要把tftp.txt解压出来,其他的文件不进行解压。而且这个路径也要记录下,等会解压要使用到。

现在开始解压,使用如下命令:

tar -xf ilanni.tar.gz ilanni/tftp.txt

clip_image012

可以看到现在已经把tftp.txt文件解压出来了。

如果多个文件,但又不是全部解压。可以使用类型的命令。如下:

tar -xf ilanni.tar.gz ilanni/{tftp.txt,iso.txt}

clip_image013

通过上图可以看到,我们现在已经只把tftp.txt和iso.txt。两个文件解压出来了。

到此有关tar的基本使用介绍结束。

烂泥:CentOS命令学习之tar打包与解压