tar 命令

 

文件命令16: tar
tar命令可用于打包文件,把多个文件打到一个包中,方便数据的移动。
语法:tar [OPTION...] [FILE]
-c 建立新的压缩文件。
-x 从压缩的文件中提取文件。
-t 显示压缩文件的内容。
-z 支持gzip解压文件。
-j 支持bzip2解压文件。
-v 显示操作过程。

 

 

打包并压缩,指定压缩包的格式是gz

[root@salt-server-192 tar]# tar czvf 1.tar.gz 1.txt 2.txt 
1.txt
2.txt
[root@salt-server-192 tar]# ls
1.tar.gz  1.txt  2.txt

打包并压缩,指定压缩包的格式是bz

[root@salt-server-192 tar]# tar -cjvf 1.tar.bz2 1.txt 2.txt 
1.txt
2.txt
[root@salt-server-192 tar]# ls
1.tar.bz2  1.tar.gz  1.txt  2.txt

解压压缩包,解压格式gz

[root@salt-server-192 test]# tar -xzvf abd.tar.gz 
1.txt
2.txt
[root@salt-server-192 test]# ls
1.txt  2.txt  abd.tar.gz

解压压缩包,解压格式bz

[root@salt-server-192 test]# tar -jxvf 1.tar.bz2 
1.txt
2.txt
[root@salt-server-192 test]# ls
1.tar.bz2  1.txt  2.txt

-C 指定解压的路径

[root@salt-server-192 tar]# tar -jxvf 1.tar.bz2  -C  test/
1.txt
2.txt
[root@salt-server-192 tar]# cd test/
[root@salt-server-192 test]# ls
1.txt  2.txt

 

 

在很多时候,我们要对某一个目录打包,而这个目录下有几十个子目录和子文件,我们需要在打包的时候排除其中1、2个目录或文件。

这时候我们在用tar命令打包的时候,增加参数 --exclude 就能达到目的。

 

例如:

我们以tomcat 为例,打包的时候我们要排除 tomcat/logs 目录,命令如下:

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs tomcat

如果要排除多个目录,增加 --exclude 即可,如下命令排除logs和libs两个目录及文件xiaoshan.txt:

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs --exclude=tomcat/xiaoshan.txt tomcat

 

这里要说一下注意事项:

大家都知道linux在使用tab键的时候会对目录名称自动补全,这很方便,大家也比较常用。

如我们输入 tomcat/lo 的时候按tab键,命令行会自动生成 tomcat/logs/ ,对于目录,最后会多一个 “/”

这里大家要注意的时候,在我们使用tar 的--exclude 命令排除打包的时候,不能加“/”,否则还是会把logs目录以及其下的文件打包进去。

错误写法:

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs/ --exclude=tomcat/libs/ tomcat

正确写法:

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs tomcat

posted @ 2017-11-28 18:38  minger_lcm  阅读(254)  评论(0编辑  收藏  举报