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