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.)