11 de Marzo 2008
Comandos útiles para borrados largos y/o recursivos con patrones
Muchas veces queremos borrar una larga lista de ficheros, creados por algún proceso en ejecución, que contienen un patrón determinado en su nombre (sean ficheros de logs, sesiones, etc.). Puede darse el caso que dicha lista sea muy extensa y que no se nos permita hacer un borrado simple recursivo. Normalmente cuando pasa esto nos aparece este problema:
bash: /bin/rm: Argument list too long
Entonces, podemos utilizar un comando del estilo siguiente para hacer el borrado de estos ficheros tan similares (en este caso supongo que los nombres de los archivos empiezan por "log_"):
for i in ls /tmp/log_*; do rm -v $i -f; done
Otro caso común es cuando necesitamos eliminar unos ficheros y/o directorios que se repiten a lo largo de un profundo árbol de directorios. Un ejemplo muy común de este caso podrían ser los directorios ".svn" que crean los repositorios del Subversion a lo largo de sus directorios internos. Para poder eliminarlos se puede usar un comando similar a este:
rm -rf `find . -type d -name .svn`
El cúal elimina recursivamente dichos directorios buscándolos por su nombre.
Espero que os sean de utilidad ;).
1 comentarios » escribe aquí tu comentario
Dani dijo
También puedes usar xargs:
$ find . -type d -name .svn | xargs rm -f
13 Abril 2008, 18:38
escribe tu comentario