Digamos que você queira iniciar find no diretório atual e restringi-lo ao primeiro nível de subdiretórios:
find . -maxdepth 1
O comando find tem um sinalizador útil -not (ou ! ), que nega o seguinte teste. Então, para encontrar um nome que não contenha uma substring, adicione
-not -name "*substring*"
IMPORTANTE: você também desejará excluir o diretório atual. Caso contrário, todo o diretório atual seria excluído.
-not -name "."
Então você quer testar somente os diretórios:
-type d
E, se tudo parece bem, você deseja excluir esses diretórios:
-exec rm -rf {} \;
que diz "para todos os diretórios encontrados, execute este comando". O {} é um espaço reservado para o nome do diretório (incluindo o caminho completo, para que funcione no caminho correto). \; indica o final do comando a ser executado.
Resumindo:
find . -maxdepth 1 -not -name "*substring*" -not -name "." -type d -exec rm -rf {} \;
deve funcionar. Mas primeiro, experimente sem a parte -exec .