Перебрать файлы каталога

Когда я хочу для перебора файлов каталога (например, каталога Runfirstall ) я обычно делаю:

for folder in $DIR/Runfirstall/*

Однако я нашел следующее предложение в каком-то коде:

for folder in $DIR/!(Runfirstall)/

Это то же самое?

0
задан 1 May 2021 в 14:59

1 ответ

Нет, если установлена опция оболочки extglob, то вторая перебирает все каталоги, которые не названы Runfirstall

Из man bash:

Если опция оболочки extglob включена с помощью встроенного модуля shopt, распознаются несколько расширенных операторов сопоставления с образцом. В следующем описании список шаблонов представляет собой список из одного или нескольких шаблонов, разделенных символом |. Составные шаблоны могут быть сформированы используя один или несколько следующих подшаблонов:

 ?(pattern-list)
 Сопоставляет ноль или одно вхождение заданных шаблонов
 *(pattern-list)
 Совпадает с нулем или более вхождений заданных деталей
 +(pattern-list)
 Сопоставляет одно или более вхождений заданных деталей
 @(список деталей)
 Сопоставляет один из заданных шаблонов
 !(список шаблонов)
 Идентифицирует все, кроме одного из заданных шаблонов
1
ответ дан 7 May 2021 в 17:41

Другие вопросы по тегам:

Похожие вопросы: