Похоже, вы пытаетесь использовать BASH-специфический синтаксис extglob
. ls|grep
не будет работать в середине шара, потому что каждый шаблон должен быть отделен |
, что не случится с ls|grep
. Самый простой способ сделать то, что вы хотите, это использовать глобализацию оболочки, чтобы найти файлы в каталоге, который вы ищете. Убедитесь, что вы делаете следующее:
- Используете BASH
- Включено
extglob
: shopt -s extglob
- Включено
globstar
: shopt -s globstar
- Использовать глобализацию файла вместо
ls | grep
Затем попробуйте еще раз:
rm -v !("R1.r"|"R2.r"|"r2.par"|**/*nario*|"sh.sh")
Примечание: globstar
требует BASH версии 4 или выше.