
¿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 find
comando.
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 find
obtener 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 -print0
y -0
hacen que find genere una lista separada por caracteres 0 y xargs ejecute el rm
comando en cada elemento de la lista, por lo que las rutas con espacios no son un problema.