Digamos que tengo 20 archivos llamados FOOXX, donde XX es el número del archivo, por ejemplo, 01, 02, etc.
Por el momento, si quiero eliminar todos los archivos inferiores al número 10, esto es fácil y solo uso un comodín, por ejemplo, rm FOO0 *
Sin embargo, si quiero eliminar archivos específicos en un rango, por ejemplo, 13-15, esto se vuelve más difícil.
rm FPP [13-15] no funciona y me pregunta si deseo eliminar todos los archivos. Likewse rm FOO1 [3-5] desea eliminar todos los archivos que comienzan con FOO1
Entonces, ¿cuál es la mejor manera de eliminar rangos de archivos como este?
¿He intentado con bash y zsh, y no creo que difieran tanto para una tarea tan básica?
Respuestas:
En bash puedes usar:
o
para eliminar FOO13, FOO14 y FOO15.
Las expansiones Bash se documentan aquí .
fuente
rm FOO{13..15}
.bash
comandos forman un subconjunto dez
comandos de shell.Para futuros lectores, el
find
comando también puede eliminar archivos. Me decidí por esto por un problema similar:pero la respuesta elegida es la respuesta más simple a esta pregunta.
fuente
find . -name "*.o" -delete
y funcionó de maravilla)ls | grep regex | xargs rm
fuente
find -regex ... -print0 | xargs -0 ...
para esto, de lo contrario, fallará para los nombres de archivo con espacios.find
entonces también puedes usarlo-exec
.