-I
обратный к -P
... руководство дает больше информации о том, что является приемлемым для последнего:
https://linux.die.net/man/1/tree
-P pattern
Список только те файлы, которые соответствуют шаблону подстановки.
Примечание: вы должны использовать опцию -a
чтобы также рассмотреть файлы, начинающиеся с точки .
для сопоставления.
Допустимые подстановочные операторы *
(любые ноль или более символов) ?
(любой отдельный символ), [...]
(можно использовать любой отдельный символ, указанный в скобках (необязательно -
(тире) для диапазона символов: например: [A-Z]
), и [^...]
(любой отдельный символ не перечислено в скобках) и |
разделяет альтернативные шаблоны.
Там нет упоминания о синтаксисе расширения скобки оболочки {a,b}
... Это расширение обрабатывается tree
, а не bash
.
И, к сожалению, вы не можете указать -I
несколько раз ...
Вместо этого вам нужно перечислить полные шаблоны с помощью канала (|
), чтобы разделить их:
tree -I '*.svg|*.png'
Обратите внимание на использование одинарных кавычек для предотвращения расширения оболочкой звездочки (*
) или переменных (вводится через доллар - $
).
Обратите также внимание, что даже невозможно принудительно использовать расширение скобки оболочки, как показано ниже:
$ tree -I '*.'{svg,png}
+ tree -I '*.svg' '*.png'
*.png [error opening dir]