Eliminar archivos en un directorio que coincida con una expresión regular, usando una terminal Mac

Eliminar archivos en un directorio que coincida con una expresión regular, usando una terminal Mac

¿Cómo elimino archivos en un directorio que coinciden con una expresión regular determinada, o una solución similar, usando una terminal Mac?

Respuesta1

Utilice el findcomando.

Encuentre todos los archivos (recursivamente) que coincidan con una expresión regular: find . -type f -regex '/ex/'
busque todos los archivos (recursivamente) que coincidan con una expresión regular y elimínelos:find . -type f -regex '/ex/' -exec rm {} \;

Los corchetes almacenan el nombre de la ruta encontrada y la barra invertida escapa del punto y coma porque se pasó a buscar; sin escapar de él, sería consumido por el caparazón. Si se te pasó por la cabeza, lee los dos primeros capítulos de "Aprendiendo el Bash Shell".

Consulte las páginas de manual para findobtener más opciones. Hay muchas más formas de buscar.

Respuesta2

Muy similar a la respuesta de jorelli. Esto es lo que uso:

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

Los argumentos -print0y -0hacen que find genere una lista separada por caracteres 0 y xargs ejecute el rmcomando en cada elemento de la lista, por lo que las rutas con espacios no son un problema.

información relacionada