Вы можете использовать find
с оператором -not
:
find . -not -iname "*good*" -a -not -name "." -exec rm {} \;
Я использовал -exec
для вызова rm
, но IИнтересно, если find
имеет встроенное действие удаления, оно есть, см. ниже .
Но очень осторожно с этим,Обратите внимание, что в приведенном выше тексте я должен был вставить предложение -a -not -name "."
, потому что в противном случае оно совпадало с .
, текущим каталогом.Так что я бы тщательно проверил с -print
, прежде чем вставить -exec rm {} \;
бит!
Обновление : Да, я никогда не использовал его, но действительно есть -delete
действие.Итак:
find . -not -iname "*good*" -a -not -name "." -delete
Опять же, будьте осторожны и перепроверьте, что вы не соответствуете больше, чем вы хотите сопоставить первым.