Eliminar directorios coincidentes en todos los subdirectorios

Eliminar directorios coincidentes en todos los subdirectorios

¿Cómo puedo eliminar todos run-*.achilleslos directorios de todos mis subdirectorios en Linux?

Lo intenté find /path -name run-*.achilles -type f -deletepero no funciona.

Respuesta1

Varios problemas aquí:

  1. Debe citar *para evitar la proliferación de shell.
  2. -type fle dice findque quiere archivos.
  3. find -deleteno eliminará directorios que no estén vacíos.Ver esta pregunta. Solución ajustada de una de las respuestas allí:

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

No es perfecto, la primera línea coincidirá .../run-a/b.achilles/.... Creo. Este comando debería coincidir mejor:

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

Usa rm -rf, así que ten cuidado con él.

información relacionada