tar 文件,不包括具有给定模式的文件

tar 文件,不包括具有给定模式的文件

我有以下目录结构(此处给出的所有名称都是目录;它们都包含文件和子目录):

a
a/a, a/b, a/c, ..., a/x, a/y, a/z
a/a/a, a/a/b, a/a/c, ..., a/a/x, a/a/y, a/a/z
a/b/a, a/b/b, a/b/c, ..., a/b/x, a/b/y, a/b/z
...
a/x/a, a/x/b, a/x/c, ..., a/x/x, a/x/y, a/x/z

这些字母只是描述性的;他们不是真名。此外,深度是可变的,最多有 10 个左右的子目录。

我想从目录中压缩整个树a,但排除任何名为x.因此,在上面,我想将除a/x其下的所有内容都放在焦油中;a/a/x以及它下面的一切;以及a/b/x它下面的一切。

我正在考虑使用findgrep -v但我想知道有没有更简单的方法?

答案1

感谢 @Kusalananda 的评论,我可以使用--excludeGNU tar 中提供的选项:

要排除任何指定目录下的所有内容x(但不包括目录本身):

tar cf a.tar --exclude='x/*' a

要排除目录x及其下的所有内容(但请注意,这也排除了任何指定的常规文件x):

tar cf a.tar --exclude='x' a

相关内容