
Como excluo arquivos em um diretório que corresponda a um determinado regexp ou a uma solução semelhante usando um terminal Mac?
Responder1
Use o find
comando.
Encontre todos os arquivos (recursivamente) que correspondam a uma regex: find . -type f -regex '/ex/'
Encontre todos os arquivos (recursivamente) que correspondam a uma regex e exclua-os:find . -type f -regex '/ex/' -exec rm {} \;
Os colchetes armazenam o nome do caminho encontrado e a barra invertida escapa do ponto e vírgula porque foi passada para find; sem escapar, seria consumido pela casca. Se isso passou pela sua cabeça, leia os dois primeiros capítulos de "Aprendendo o Bash Shell".
Verifique as páginas de manual para find
obter mais opções. Existem muito mais maneiras de pesquisar.
Responder2
Muito semelhante à resposta de Jorelli. Isto é o que eu uso:
find . -regex '/ex/' -print0 | xargs -0 rm
Os argumentos -print0
e -0
fazem com que find produza uma lista separada por char 0 e xargs execute o rm
comando em cada elemento da lista, portanto, caminhos com espaços não são um problema.