tar –exclude用法

  • Post author:
  • Post category:linux

有时候我们压缩文件时,不希望把该文件下的某个文件夹或文件压缩进去,我们可以使用tar –exclude命令。可是该命令文件夹路径写法需要特别注意,明明加了–exclude,可是还是把不想压缩的压缩进去了。

1、我们以一个文件夹为例,如下结构

[pc@localhost tar_test]$ ls -a
.  ..  1.txt  2.txt  3.txt  4.txt  .svn
[pc@localhost tar_test]$ ls -a .svn/
.  ..  5.txt

2、压缩文件夹tar_test里除了.svn文件夹里所有文件

     –第一种写法 tar -cvf tar_test.tar.bz2 tar_test –exclude=tar_test/.svn/

[pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=tar_test/.svn/
tar_test/
tar_test/.svn/
tar_test/.svn/5.txt
tar_test/1.txt
tar_test/2.txt
tar_test/3.txt
tar_test/4.txt

    从压缩打印来看居然把.svn文件夹压缩进去了,why?

  –其他错误写法

[pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=/tar_test/.svn
tar_test/
tar_test/.svn/
tar_test/.svn/5.txt
tar_test/1.txt
tar_test/2.txt
tar_test/3.txt
tar_test/4.txt
[pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=./tar_test/.svn
tar_test/
tar_test/.svn/
tar_test/.svn/5.txt
tar_test/1.txt
tar_test/2.txt
tar_test/3.txt
tar_test/4.txt
[pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=./tar_test/.svn/
tar_test/
tar_test/.svn/
tar_test/.svn/5.txt
tar_test/1.txt
tar_test/2.txt
tar_test/3.txt
tar_test/4.txt
[pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=/tar_test/.svn
tar_test/
tar_test/.svn/
tar_test/.svn/5.txt
tar_test/1.txt
tar_test/2.txt
tar_test/3.txt
tar_test/4.txt

  —正确写法

###相对路径
[pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=tar_test/.svn
tar_test/
tar_test/1.txt
tar_test/2.txt
tar_test/3.txt
tar_test/4.txt

[pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=tar_test/.svn --exclude 1.txt
tar_test/
tar_test/2.txt
tar_test/3.txt
tar_test/4.txt

#绝对路径
[pc@localhost ~]$ tar -cvf tar_test.tar.bz2 ./tar_test --exclude=./tar_test/.svn
./tar_test/
./tar_test/1.txt
./tar_test/2.txt
./tar_test/3.txt
./tar_test/4.txt
[pc@localhost ~]$ tar -cvf tar_test.tar.bz2 ./tar_test --exclude=tar_test/.svn
./tar_test/
./tar_test/1.txt
./tar_test/2.txt
./tar_test/3.txt
./tar_test/4.txt

 总结

1)打包的目录使用相对路径,排除的文件只能接相对路径

2)打包的目录使用绝对路径,排除的文件接相对路径或绝对路径

3)建议打包的目录和排除的文件使用的使用路径时,保持一致,都是用绝对路径,或都是用相对路径

 

 


版权声明:本文为xclshwd原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。