Ответ 1
Вы действительно хотите регулярное выражение?
Это использует *
( " globbing" ) и {[...]}
( " расширение брекета" ).
$ ls *.{zip,rar}
См. также этот вопрос для многих, многих других ярлыков.
Каталог содержит файлы .zip
и .rar
и файлы другого типа.
Чтобы отобразить только файлы .rar
и .zip
, есть ls *.zip *.rar
В bash, как совместить оба типа с одним регулярным выражением?
Вы действительно хотите регулярное выражение?
Это использует *
( " globbing" ) и {[...]}
( " расширение брекета" ).
$ ls *.{zip,rar}
См. также этот вопрос для многих, многих других ярлыков.
Используйте расширение скобки:
ls *.{zip,rar}
Если вы должны использовать регулярное выражение, вы можете использовать find
:
find -regex ".*\.\(zip\|rar\)"
В bash вы можете включить специальную опцию extglob, чтобы сделать это с помощью регулярного выражения:
shopt -s extglob
ls *.*(zip|rar)
Преимущество состоит в том, что он будет отображать один или оба типа файлов, даже если его нет.
(Как и при всех сопоставлениях glob shell, шаблон будет передаваться непосредственно в ls, если совпадение отсутствует, отключить это поведение с помощью shopt -s failglob
)