排除口是心非的相对路径

排除口是心非的相对路径

口是心非的文档当相对路径(或裸文件名)传递给选项时,似乎没有完整记录其行为--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

相关内容