-I
é o inverso de -P
... o manual fornece mais informações sobre o que é aceitável para o último:
-P pattern
List only those files that match the wild-card pattern.
Note: you must use the
-a
option to also consider those files beginning 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.
Não há menção à sintaxe da expansão da cinta da shell de {a,b}
... Esta expansão é tratada por tree
, não bash
.
E infelizmente você não pode especificar -I
várias vezes ...
Em vez disso, você precisa listar os padrões completos com um canal ( |
) para separá-los:
tree -I '*.svg|*.png'
Observe o uso de aspas simples para impedir que o shell expanda o asterisco ( *
) ou as variáveis (introduzidas por um dólar - $
).
Note também que nem sequer é possível forçar a expansão do suporte do shell, como mostrado abaixo:
$ tree -I '*.'{svg,png}
+ tree -I '*.svg' '*.png'
*.png [error opening dir]