ti-enxame.com

Excluir arquivos em um diretório que correspondam a um regex, usando um terminal MAC

Como faço para excluir arquivos em um diretório que correspondam a um determinado regexp ou uma solução semelhante, usando um terminal MAC?

3
adardesign

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 excluí-los: find . -type f -regex '/ex/' -exec rm {} \;

Os colchetes armazenam o nome do caminho encontrado, e a barra invertida escapa ao ponto-e-vírgula porque é passado para encontrar; Sem escapar, seria consumido pela casca. Se isso passasse a cabeça, leia os dois primeiros capítulos de "Aprender a Shell Bash".

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

11
jorelli

Muito parecido com a resposta de Jorelli. Isto é o que eu uso:

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

O -print0 e -0 Argumentos Causa Achar para produzir uma lista separada Char 0 e Xargs para executar o comando rm em cada elemento da lista, então caminhos com espaços não são um problema.

2
Sergio Acosta