为什么 `tar --exclude` 不采用多个选项?

为什么 `tar --exclude` 不采用多个选项?

查看 tar 的手册页,其中说明--exclude=PATTERN排除文件,以 PATTERN 形式给出“。我不确定是否在其他地方更详细地解释了 PATTERN,但是为什么用户必须--exclude为每个目录或文件提供单独的选项?例如,

tar cvzf backup.tar.gz / --exclude=/home,/sys,/proc

相对于

tar cvzf backup.tar.gz / --exclude=/home --exclude=/proc --exclude=/sys

答案1

参考6.4 排除某些文件在手册中。除了接受多个--exclude选项之外,GNU tar 还有此选项,用于多种模式:

-X,--exclude-from 文件
排除中列出的模式文件

在手册中,它解释说模式是 shell 通配符。

至于为什么它是这样实现的:长期约定使用来自命令行选项的单个值,该选项接受一个值。如果每个程序都发明了不同的解析命令行的方法,那么维护工作就会更加繁重。

相关内容