Exclua os diretórios correspondentes em todos os subdiretórios

Exclua os diretórios correspondentes em todos os subdiretórios

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

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

Responder1

Vários problemas aqui:

  1. Você deve citar *para evitar o globbing do shell.
  2. -type fdiz que findvocê deseja arquivos.
  3. find -deletenão excluirá diretórios não vazios.Veja esta pergunta. 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á .../run-a/b.achilles/.... Eu penso. Este comando deve corresponder melhor:

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

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

informação relacionada