欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

linux tar打包排除某个目录或文件 排除 子目录 有大用

在linux系统上,经常需要使用tar命令打包或备份应用程序文件,通常我们在使用tar命令打包的时候都会使用通配符或指定一个整目录下所有文件,不会一个一个文件的指定。那么在打包的时候想排除一些个别文件呢,比如备份应用程序的时候不想把日志目录或文件打包进去,这个时候就需要把日志文件单独排除了即可

工具/原料
       

  • xshell
  • linux

方法/步骤
       

  1. 1

    首先连接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

    linux tar打包排除某个目录或文件                    
  2. 2

    输入tar -czvf test.tar.gz *,星号表示当前目录下所有文件,平常我们打包默认都会使用*号来匹配所有文件,如果一个一个文件的写上太麻烦

    linux tar打包排除某个目录或文件                    
  3. 3

    可以使用vi test.tar.gz命令进入tar包内查看打包的文件内容,如图的打包结果可以看出,目录下面的所有文件都打进去了

    linux tar打包排除某个目录或文件                    
  4. 4

    一般在打包或备份应用程序的时候需要排除以上的日志文件,那么我们采用tar命令自带排除参数即可

    不了解tar命令的,可以输入man tar来查看帮助信息,如图

    --exclude=PATTERN,表示排除指定的文件

    linux tar打包排除某个目录或文件                    
  5. 5

    排除c.log文件

    tar -czvf test.tar.gz * --exclude c.log

    从打包结果中可以看出,c.log文件不再被打到tar包里了

    linux tar打包排除某个目录或文件                    
  6. 6

    如果日志文件不是一个文件而是一个目录呢,同样可以使用--exclude进行排除,还可以同时指定多个--exclude参数

    tar -czvf test.tar.gz * --exclude c.log --exclude logs     # 排除目录 logs 后面不要加 斜杠

    从打包结果中可以看出,c.log文件和logs目录不再被打到tar包里了

    linux tar打包排除某个目录或文件                    
    END                

注意事项
       

  • 以上打的包是.tar.gz是带有gz压缩的,直接打出了的tar包是不包含压缩的,需要打包的同时压缩文件要带上-z参数
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

来自  https://jingyan.baidu.com/article/1612d5008904b5e20e1eee3d.html


普通分类: