find . type -f ! -name '*.jpeg' ! -name '*.csv' -delete
Leia isto como: percorrer o diretório atual; quando você encontrar um arquivo que é um arquivo regular e cujo nome não corresponde a *.jpeg e cujo nome não corresponde a *.csv , exclua-o.
Se a sua versão de find não tiver -delete , faça find invocar o comando rm : replacete -delete by -exec rm {} + .
Em zsh (com setopt extended_glob ativado), *~(PATTERN) corresponde a todos os arquivos que não correspondem a PATTERN . Use o qualificador de glob D para incluir arquivos de ponto e . para incluir apenas arquivos regulares. Altere . para ^/ para excluir todos os não diretórios (exceto os que correspondem aos padrões excluídos).
rm **/*~*.(jpeg|csv)(D.)