Exclua arquivos em um diretório que corresponda a um regexp, usando um terminal Mac

Exclua arquivos em um diretório que corresponda a um regexp, usando um terminal Mac

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

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 findobter 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 -print0e -0fazem com que find produza uma lista separada por char 0 e xargs execute o rmcomando em cada elemento da lista, portanto, caminhos com espaços não são um problema.

informação relacionada