The file selection section of the duplicity
man page states:
Each file selection condition either matches or doesn’t match a given file. A given file is excluded by the file selection system exactly when the first matching file selection condition specifies that the file be excluded; otherwise the file is included.
This relates to the --include / --exclude command line options priority, but the manual page later you find the relevant info for the --include-globbing-filelist
option you use:
The --include-globbing-filelist and --exclude-globbing-filelist options also
specify filelists, but each line in the filelist will be interpreted as a
globbing pattern the way --include and --exclude options are interpreted
(although "+ " and "- " prefixing is still allowed). For instance, if the
file "globbing-list.txt" contains the lines:
dir/foo
+ dir/bar
- **
Then --include-globbing-filelist globbing-list.txt would be exactly the same
as specifying --include dir/foo --include dir/bar --exclude ** on the command
line.
What happens is that /storage/include/exclude
matches the first line, it therefore it is included. You should in general use more specific statements before less specific ones. The following should work for you:
- /storage/include/exclude
+ /storage/include
+ /otherthings
- **
duplicity --exclude-filelist "/Path/to/filelist/without-or+/to-exclude" / target
. (note: I don't useduplicity
, just a suggestion based on the manual page I found)