你正在寻找--exclude
论据。
--exclude=PATTERN
一些用户发现exclude
选项令人困惑。以下是一些常见的陷阱:
如果排除了其文件名组件之一,则的主要操作模式tar
不会作用于命令行上明确列出的路径名。在上面的示例中,如果您创建档案并排除以 结尾的文件,但在列出所有选项后
*.o
明确命名文件,则将从档案中排除。dir.o/foo
dir.o/foo
您有时会混淆--exclude=PATTERN
和
--exclude-from=FILE-OF-PATTERNS
( -X FILE-OF-PATTERNS
) 的含义。注意:--exclude=PATTERN
当要排除的文件在命令行上作为模式给出时使用。用于
--exclude-from=FILE-OF-PATTERNS
介绍包含模式列表的文件的名称,每行一个;这些模式中的每一个都可以排除零个、一个或多个文件。
使用 时--exclude=PATTERN
,请务必引用 PATTERN 参数,以便 GNUtar
看到通配符,如*
. 如果您不这样做,shell 可能会*
使用手头的文件扩展自身,因此tar
可能会收到文件列表而不是一个模式,或者根本没有,从而使命令有些非法。这可能与您想要的不符。
例如,写:
$ tar -c -f ARCHIVE.TAR --exclude '*.o' DIRECTORY
而不是:
$ tar -c -f ARCHIVE.TAR --exclude *.o DIRECTORY
regexp
在tar
. _ 如果您尝试使用
regexp
语法来描述要排除的文件,您的命令可能会失败。