带排除功能的 Linux tar 命令

带排除功能的 Linux tar 命令

我想创建一个文件夹的 tar 文件,但该文件夹包含一些 tar.gz 文件,例如 abc.tar.gz、pqr.tar.gz,我不想包含这些文件,那么如何在制作 tar 时排除这些文件

答案1

 --exclude=PATTERN
      When performing operations, `tar' will skip files that match
      PATTERN.

--exclude="*.tar.gz"

 --exclude-from=FILE
 -X FILE
      Similar to --exclude, except `tar' will use the list of patterns
      in the file FILE.

--exclude-from="File.txt"

文件.txt

abc.tar.gz
prq.tar.gz

答案2

那么类似这样的情况呢:

find ./ -name '*.tar.gz' > /tmp/excludefiles
tar -czvf newarchive.tar.gz -X /tmp/excludefiles foldertotar/

我还没有测试过。只是知道如何解决。

編輯:

它甚至更简单:

tar -czvf newarchivename.tar.gz --exclude '*.tar.gz' foldertobetarred/

该解决方案已经过测试并且有效。

答案3

您可以使用 tar 中的 --exclude 功能

@tmp$ ls test
abc.tar.gz  adfd  asdfd  dfcvdf  dfdf  efdfefef  pqr.tar.gz  test
@tmp$ tar -cvzf test.tar.gz test --exclude="*.tar.gz"
test/
test/adfd
test/dfcvdf
test/test/
test/test/abcd
test/efdfefef
test/dfdf
test/asdfd

相关内容