tar命令一般是做打包和解压使用,有关tar命令的使用。我们可以通过帮助文档进行查看,如下:
tar –help
man tar
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是可有可无。
通过上述两张图片我们可以看出,已经打包成功。刚刚是把本地的文件打包到其他目录,如果把A目录下的文件打包到B目录如下:
tar -czf /testtar/tar.tar.gz /tar
该条命令的作用是把/tar目录进行打包,打包完成后以tar.tar.gz命名文件存放到/testtar目录下。
以上都是在同一台服务器上进行的,如果我想把本地的文件打包后,上传到另外一台服务器上。操作如下:
ssh root@192.168.1.102 tar -czf /ks/tar.tar.gz /tar/
该条命令的意思是把/tar目录打包到192.168.1.102服务器的/ks目录下。
通过上述两张截图,我们可以看到已经成功的把/tar打包到192.168.1.102服务器的/ks目录下。
上面是对目录进行打包,如果是对单独的文件进行打包也很简单。我们来测试下,如果两个文件在不同的目录,打包到一个压缩包中。如下
tar -zvcf test.tar.gz ./tftp.txt ./ilanni/iso.txt
tar -tvf test.tar.gz
通过上面这张截图,我们可以很清楚的看出。我们现在已经把当前目录下的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
通过上图,我们可以看到只要是tar压缩包的解压我们就可以直接使用tar -xf进行解压。
以上我们是把压缩包解压到同一目录下,下面我们来测试下把压缩包解压到另外一个目录。如下:
tar -xf ilanni.tar.gz -C /testtar/
该条命令的意思是把当前目录下ilanni.tar.gz解压到/testtar/目录下。
通过上图,我们可以看到ilanni.tar.gz已经成功的解压到/testtar/目录下。
以上我们解压的是整个目录,假如说这个压缩包是一个文件夹的话,而里面又有很多的文件,我们现在只想把其中的一个文件解压出来。操作如下:
先查看该压缩包的目录结构,使用如下命令:
tar -tvf ilanni.tar.gz
注意图中黄色部分标记出来的ilanni/tftp.txt,我们现在就是要把tftp.txt解压出来,其他的文件不进行解压。而且这个路径也要记录下,等会解压要使用到。
现在开始解压,使用如下命令:
tar -xf ilanni.tar.gz ilanni/tftp.txt
可以看到现在已经把tftp.txt文件解压出来了。
如果多个文件,但又不是全部解压。可以使用类型的命令。如下:
tar -xf ilanni.tar.gz ilanni/{tftp.txt,iso.txt}
通过上图可以看到,我们现在已经只把tftp.txt和iso.txt。两个文件解压出来了。
到此有关tar的基本使用介绍结束。