欢迎各位兄弟 发布技术文章
这里的技术是共享的
在linux系统上,经常需要使用tar命令打包或备份应用程序文件,通常我们在使用tar命令打包的时候都会使用通配符或指定一个整目录下所有文件,不会一个一个文件的指定。那么在打包的时候想排除一些个别文件呢,比如备份应用程序的时候不想把日志目录或文件打包进去,这个时候就需要把日志文件单独排除了即可
首先连接linux服务器,然后cd切换到需要打包的目录中,这里新建了几个测试文件来演示如何使用tar打包
-rw-rw-r-- 1 vagrant vagrant 0 Oct 22 10:25 c.log
drwxrwxr-x 2 vagrant vagrant 4096 Oct 22 10:25 logs/
-rw-rw-r-- 1 vagrant vagrant 0 Oct 22 10:25 Test.java
输入tar -czvf test.tar.gz *,星号表示当前目录下所有文件,平常我们打包默认都会使用*号来匹配所有文件,如果一个一个文件的写上太麻烦
可以使用vi test.tar.gz命令进入tar包内查看打包的文件内容,如图的打包结果可以看出,目录下面的所有文件都打进去了
一般在打包或备份应用程序的时候需要排除以上的日志文件,那么我们采用tar命令自带排除参数即可
不了解tar命令的,可以输入man tar来查看帮助信息,如图
--exclude=PATTERN,表示排除指定的文件
排除c.log文件
tar -czvf test.tar.gz * --exclude c.log
从打包结果中可以看出,c.log文件不再被打到tar包里了
如果日志文件不是一个文件而是一个目录呢,同样可以使用--exclude进行排除,还可以同时指定多个--exclude参数
tar -czvf test.tar.gz * --exclude c.log --exclude logs # 排除目录 logs 后面不要加 斜杠
从打包结果中可以看出,c.log文件和logs目录不再被打到tar包里了
来自 https://jingyan.baidu.com/article/1612d5008904b5e20e1eee3d.html