-I é o inverso de -P ... o manual fornece mais informações sobre o que é aceitável para o último:
-P patternList only those files that match the wild-card pattern.
Note: you must use the
-aoption 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]