Excluir diretórios correspondentes em todos os subdiretórios

0

Como posso remover todos os diretórios run-*.achilles em todos os meus subdiretórios no Linux?

Eu tentei find /path -name run-*.achilles -type f -delete , mas não funciona.

    
por Gosc 03.10.2017 / 11:15

1 resposta

2

Vários problemas aqui:

  1. Você deve citar * para evitar a globalização de conchas.
  2. -type f informa a find que você quer arquivos.
  3. find -delete não excluirá diretórios não vazios. Veja esta questão . Solução ajustada de uma das respostas:

    find /path -path '*/run-*.achilles/*' -delete
    find /path -type d -name 'run-*.achilles' -empty -delete
    

Não é perfeito, a primeira linha corresponderá a .../run-a/b.achilles/... . Eu acho que. Este comando deve corresponder melhor:

find /path -type d -name 'run-*.achilles' -exec rm -rf {} +

Ele usa rm -rf , então tenha cuidado com isso.

    
por 03.10.2017 / 11:33