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

3

Como excluo arquivos em um diretório que corresponda a um determinado regexp ou uma solução semelhante usando um terminal Mac?

    
por adardesign 22.08.2010 / 17:12

2 respostas

11

Use o comando find .

Encontre todos os arquivos (recursivamente) correspondentes a um regex: find . -type f -regex '/ex/'
Encontre todos os arquivos (recursivamente) correspondentes a um 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 é passado para encontrar; sem fugir, seria consumido pela casca. Se isso passar por cima de sua cabeça, leia os dois primeiros capítulos de "Aprendendo a concha de bash".

Verifique as páginas de manual para find para mais opções. Há muito mais maneiras de pesquisar.

    
por 22.08.2010 / 18:16
2

Muito parecido com a resposta de jorelli. Isso é o que eu uso:

find . -regex '/ex/' -print0 | xargs -0 rm

Os argumentos -print0 e -0 fazem com que o resultado seja uma lista separada por char 0 e xargs para executar o comando rm em cada elemento da lista, portanto, caminhos com espaços não são um problema.

    
por 23.08.2010 / 03:49