В bash запустите shopt -s extglob
(или поместите его в свой ~/.bashrc
), и вы сможете использовать дополнительные шаблоны, которые предоставляют регулярные выражения с необычным синтаксисом (унаследованным от ksh). Конечно, вы можете использовать эти шаблоны и в ksh, а также в zsh после setopt ksh_glob
.
$ shopt -s extglob
$ ls /opt/somedir/@(aa|bb|cc|doesnotexist)
/opt/somedir/aa /opt/somedir/bb /opt/somedir/cc
В Zsh вы можете напрямую использовать (foo|bar)
в качестве шаблона.
% ls /opt/somedir/(aa|bb|cc|doesnotexist)
/opt/somedir/aa /opt/somedir/bb /opt/somedir/cc
Обратите внимание, что команда вызывается с полным путем. Если вы хотите вызвать команду с коротким путем, вам нужно как-то изменить каталог, и (cd /opt/somedir && somecommand aa bb cc)
это самый простой способ.