Você pode usar o sinal -delete
de find
(primeiro teste com -ls
)
find -not -name "*.c" -delete
Se você não quiser usar find
, mas apenas arquivos no diretório atual, você pode fazer
rm !(*.c)
Certifique-se, em bash
, de que com shopt -s extglob
a globbing correta está definida. Além disso, se você tiver globstar set ( shopt -s globstar
), você pode agir recursivamente (para bash
versões acima de 4):
rm **/!(*.c)