当前位置:   article > 正文

tar --exclude用法

tar --exclude

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

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

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

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

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

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

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

  --其他错误写法

  1. [pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=/tar_test/.svn
  2. tar_test/
  3. tar_test/.svn/
  4. tar_test/.svn/5.txt
  5. tar_test/1.txt
  6. tar_test/2.txt
  7. tar_test/3.txt
  8. tar_test/4.txt
  9. [pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=./tar_test/.svn
  10. tar_test/
  11. tar_test/.svn/
  12. tar_test/.svn/5.txt
  13. tar_test/1.txt
  14. tar_test/2.txt
  15. tar_test/3.txt
  16. tar_test/4.txt
  17. [pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=./tar_test/.svn/
  18. tar_test/
  19. tar_test/.svn/
  20. tar_test/.svn/5.txt
  21. tar_test/1.txt
  22. tar_test/2.txt
  23. tar_test/3.txt
  24. tar_test/4.txt
  25. [pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=/tar_test/.svn
  26. tar_test/
  27. tar_test/.svn/
  28. tar_test/.svn/5.txt
  29. tar_test/1.txt
  30. tar_test/2.txt
  31. tar_test/3.txt
  32. tar_test/4.txt

  --正确写法

  1. ###相对路径
  2. [pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=tar_test/.svn
  3. tar_test/
  4. tar_test/1.txt
  5. tar_test/2.txt
  6. tar_test/3.txt
  7. tar_test/4.txt
  8. [pc@localhost ~]$ tar -cvf tar_test.tar.bz2 tar_test --exclude=tar_test/.svn --exclude 1.txt
  9. tar_test/
  10. tar_test/2.txt
  11. tar_test/3.txt
  12. tar_test/4.txt
  13. #绝对路径
  14. [pc@localhost ~]$ tar -cvf tar_test.tar.bz2 ./tar_test --exclude=./tar_test/.svn
  15. ./tar_test/
  16. ./tar_test/1.txt
  17. ./tar_test/2.txt
  18. ./tar_test/3.txt
  19. ./tar_test/4.txt
  20. [pc@localhost ~]$ tar -cvf tar_test.tar.bz2 ./tar_test --exclude=tar_test/.svn
  21. ./tar_test/
  22. ./tar_test/1.txt
  23. ./tar_test/2.txt
  24. ./tar_test/3.txt
  25. ./tar_test/4.txt

 总结

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

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

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

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/203471
推荐阅读
相关标签
  

闽ICP备14008679号