Como procurar recursivamente pelo diretório pelo nome e excluir todos os arquivos regulares nele

2

Estou trabalhando em um script básico em uma instância do AWS EC2 (derivada do RHEL) que precisa fazer o seguinte:

  1. Pesquise todos os diretórios denominados "_combined" in ${PROJECT_DIR}
  2. Exclua todos os arquivos regulares em todos esses diretórios - mas não no próprio diretório

Qual é a melhor abordagem para fazer isso?

    
por BaronGrivet 14.03.2017 / 21:53

2 respostas

3

Então, algo como

find "$PROJECT_DIR" -path "*/_combined/*" -type f

E se isso parece certo:

find "$PROJECT_DIR" -path "*/_combined/*" -type f -delete

É claro que isso atingirá todos os arquivos regulares na árvore inteira, não apenas os conteúdos imediatos de _combined .

    
por 14.03.2017 / 22:18
0

Isso fará o que você descreveu. Quando tiver certeza que funciona, substitua a cláusula -print por -delete :

find "$PROJECT_DIR" -type d -name '_combined' -execdir find '_combined' -maxdepth 1 -type f -print \;

O que ele faz é procurar por todos os diretórios chamados _combined under $PROJECT_DIR , e em cada um ele executa o segundo snippet find que removerá todos os não diretórios no diretório encontrado.

    
por 14.03.2017 / 22:22

Tags