Какова цель shopt-s extglob

Я хотел удалить все файлы из каталога кроме того. Я нашел свое решение здесь. Это решение использует команду

shopt -s extglob

Я хотел знать то, что эта команда точно делает, некоторое знание бэкэнда. Я также добавил комментарий к этому ответу, но не сделал получил ответ до настоящего времени. Как новый пользователь к Ubuntu мне любопытно знать то, что делает эта команда.

13
задан 13 April 2017 в 05:24

1 ответ

Проще говоря, globbing относится к сопоставлению с образцом. Bash использует простой globbing как, echo l*, которые расширяются до списка файлов в текущем каталоге, которые запускаются с буквы l. Конечно, как можно предположить, это просто и ограничено.

Входят extglob. Как можно предположить, это обозначает extended globbing. Эта опция допускает более усовершенствованное сопоставление с образцом. От man bash :

extglob If set, the extended pattern matching features described
        above under Pathname Expansion are enabled.

И немного перед этим:

If the extglob shell option is enabled using the shopt builtin, several
extended pattern matching operators are recognized.  In  the  following
description, a pattern-list is a list of one or more patterns separated
by a |.  Composite patterns may be formed using  one  or  more  of  the
following sub-patterns:

      ?(pattern-list)
             Matches zero or one occurrence of the given patterns
      *(pattern-list)
             Matches zero or more occurrences of the given patterns
      +(pattern-list)
             Matches one or more occurrences of the given patterns
      @(pattern-list)
             Matches one of the given patterns
      !(pattern-list)
             Matches anything except one of the given patterns

существует множество путей, которыми extglob может использоваться. Довольно много хороших примеров обеспечиваются в wiki Greg Журнала и Linux.

14
ответ дан 23 November 2019 в 03:21

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

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