Skip to content

Exclude grammar

--exclude/-X (on scan, install, and dbdump) takes a match statement: an optional leading ! (negate), zero or more inline tests, and a trailing glob pattern.

(?type:file)**/*.pyc        # every .pyc file
!(?meta:keep=1)**/tmp/**     # keep entries tagged keep=1 under tmp/

Structure

[!] [(?[!]name:arg)...] <glob>
  • ! at the very start negates the whole statement.
  • (?name:arg) is an inline test; prefix the name with ! ((?!type:file)) to invert just that test.
  • <glob> is a path glob (*, **, ?); an absolute pattern is anchored to the scan/copy root.

Tests

Test Matches when
(?type:file\|directory\|symlink) the entry's type equals the argument
(?meta:key=value) the entry's meta[key] equals value

Multiple statements are evaluated in order; the first that yields a definite match/skip decides. A statement with no definite result falls through to the next, and an empty exclude set matches everything (nothing is excluded).