I need to print the directory structure of our production system and I would like to remove some specific directories from the tree?
How do we specify multiple ignore patterns for
You simply provide all the patterns to the
-I command, separated by
|. From the manpage:
-P pattern List only those files that match the wild-card pattern. Note: you must use the -a option to also consider those files begin‐ ning with a dot `.' for matching. Valid wildcard operators are `*' (any zero or more characters), `?' (any single character), `[...]' (any single character listed between brackets (optional - (dash) for character range may be used: ex: [A-Z]), and `[^...]' (any single character not listed in brackets) and `|' separates alternate patterns. -I pattern Do not list those files that match the wild-card pattern.
So, for example
tree -I 'test*|docs|bin|lib'
skips the 'docs', 'bin', and 'lib', directories, and any directory with 'test' in the name, wherever they may lie within the directory hierarchy. Obviously, you can apply wildcards for much more powerful matching.