Могу ли я использовать расширенные шаблоны глобуса Bash для реализации логического «И»? Скажем, у меня есть папка с файлами jpg (среди прочих), и я хочу просмотреть все файлы jpg, кроме A.jpg и B.jpg. Как бы я сделал это, не пытаясь трюки, такие как временная переработка файлов и так далее? Я предполагаю, что общая тема заключается в том, как можно комбинировать логические выражения и отрицания в расширенных глобах Bash.
1
1 ответ
6
shopt -s extglob
rm !(A|B).jpg
!(pattern-list)
Совпадает с чем угодно, кроме одного из заданных шаблонов.
pattern-list
- это список из одного или нескольких шаблонов, разделенных символом ‘|’
Вы также можете использовать find
:
find . -name '*.jpg' ! -name '[AB].jpg' -delete