这口是心非的文档当相对路径(或裸文件名)传递给选项时,似乎没有完整记录其行为--exclude
。--exclude foo
例如,如果我传递选项,这是否会导致foo
整个层次结构中指定的每个文件或目录source_directory
被排除,或者仅排除本身具有该名称的文件或目录source_directory
?如果是后者,是否有一种方法可以排除,source_directory/foo
而不必键入source_directory
每个此类选项的完整路径(除了使用 shell 变量)?
答案1
自从我研究口是心非/排斥以来已经有一段时间了。但一般来说duplicity 0.8 手册页,文件选择部分描述得很好。
当前仅在备份期间/排除口是心非。所有输入/排除都必须是绝对路径或包含通配符,如手册页中所述。如果您定义相对路径口是心非将显示类似错误
Fatal Error: The file specification
foo
cannot match any files in the base directory
/home/user/
你问
例如,如果我传递选项 --exclude foo,这是否会导致 source_directory 下整个层次结构中名为 foo 的每个文件或目录被排除,或者仅排除 source_directory 本身中具有该名称的文件或目录?
既不也不。就会出现如上所示的错误。如果您想/home/user/foo
在备份时排除/home/user/
,则需要绝对排除它--exclude /home/user/foo
。如果您希望foo
排除所有文件夹/文件,您可以使用--exclude '**/foo'
“**”代表任何路径。
如果是后者,是否有办法排除 source_directory/foo 而不必为每个此类选项键入 source_directory 的完整路径(除了使用 shell 变量)?
不,不幸的是,您需要提供它(普通的或作为环境变量),尽管看起来似乎是多余的。如果您有很多排除项,请考虑使用--exclude-filelist
我的包含/排除项,尽管它是命名的。此外,它还--exclude-if-present
允许您指定一个文件名,该文件名指示如果某个文件夹包含如此命名的文件,则该文件夹将被排除。
希望有帮助..ede/duply.net