Другие ответы дали хороший ответ на вопрос, но я подумал, что я также поделюсь решением, чтобы предотвратить это случайно, если вы используете PuTTY в Windows - подробности см. в https://serverfault.com/questions/731022/prevent-accidental-execution-of-commands-in-linux-if-pasting-text-contain-one .
Здесь используются не регулярные выражения, а шаблоны подстановки имен файлов.
[...]
всегда будет соответствовать только одному символу (это происходит одинаково между шаблонами подстановки имен файлов и регулярными выражениями ), поэтому он не соответствует трем символамcho
([cho]
означает «один из c
, h
и o
").
Чтобы сопоставить все имена, начинающиеся с a.
, используйте a.*
.
Чтобы сопоставить все имена, начинающиеся с a.
, а затем сразу заканчивающиеся на c
, h
, o
или cho
, сначала установите параметр оболочки extglob
с shopt -s extglob
и используйте a.@([cho]|cho)
.
Раскрытие фигурных скобок, например a.{c,h,o,cho}
, будет генерировать имена файлов в командной строке, но не дает гарантии, что эти файлы действительно существуют.