Você pode usar a expansão de nome de arquivo estendido do Bash :
rm !(*_orig.jpg)
A sintaxe !(pattern)
:
Matches anything except one of the given patterns.
, então isso se expande para todos os nomes de arquivos que não correspondem a *_orig.jpg
, que você pode excluir (ou sair do caminho). Você precisa ter a opção extglob
habilitada, o que você pode fazer com shopt -s extglob
antecipadamente (caso contrário, você receberá um erro no formulário "evento não encontrado"). É comumente ativado por padrão, no entanto.
Como alternativa e portável, você pode simplesmente mover os arquivos que deseja manter fora do caminho temporariamente e excluir o restante:
mkdir tmp
mv *_orig.jpg tmp
rm *.jpg
mv tmp/*.jpg .
rmdir tmp
Existem opções que também usam find
:
find . -type f ! -name '*_orig.jpg' -exec rm '{}' +
Isso encontrará todos os arquivos (regulares) recursivamente no diretório atual que não são denominados *_orig.jpg
e os excluem; esta é a sua melhor opção (mas não apenas) se os arquivos não estiverem todos diretamente dentro de um diretório.