tar压缩文件,排除指定文件不压缩

通常直接用tar命令打包很简单,直接使用 tar -zcvf test.tar.gz test 便可。linux

在不少时候,咱们要对某一个目录打包,而这个目录下有几十个子目录和子文件,咱们须要在打包的时候排除其中一、2个目录或文件。tomcat

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


例如:spa

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

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

若是要排除多个目录,增长 --exclude 便可,以下命令排除logs和libs两个目录及文件xiaoshan.txt:it

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


这里要说一下注意事项:test

你们都知道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