Как правильно отрицать zsh globbing выражений?
Я хочу перечислить все файлы, кроме тех, которые заканчиваются на owp: Поэтому я попытался:
ls -l *.(^owp)
zsh: unknown sort specifier
ls -l *(^owp)
zsh: unknown sort specifier
ls -l *[^o][^w][^p] # does not work either, missing some files
никто не работал. Как мне это сделать правильно? У моего.zshrc есть "set extendedglob".
2 ответа
Попробуйте либо:
ls -l ^*.owp
(то есть совпадать с чем угодно, кроме шаблона *.owp )
или же:
ls -l *~*.owp
(то есть сопоставить что-либо, что соответствует шаблону * но не совпадает *.owp )
Увидеть man zshexpn => FILENAME GENERATION => Glob Operators подробнее об этом.
Добавив () Шаблоны glob предназначены для квалификаторов glob, тогда как вы хотите использовать оператор glob.
Какие *.(^owp) делает это:
- Совпадение всех имен файлов, заканчивающихся точкой
- если они не трубы
(^p), а также - сортировать спички
(o)от "w"=>" неизвестный спецификатор сортировки "
Увидеть man zshexpn => FILENAME GENERATION => Glob Qualifiers подробнее об этом.
У меня возникла такая же проблема при попытке удалить ветку из git.
Пример:feature/this_feature(error_1)
Мне пришлось выйти из скобок:feature/this_feature\(error_1\)