martes, agosto 02, 2005

Borrar recursivamente un tipo determinado de archivos

Usando esta línea de comando pueder localizar y borrar archivos basándote en varios atributos como puede ser la extensión.

Para buscar y borrar todos los archivos en el sistema que terminen en .log ejecuta la siguiente línea como root

find / -name \*.log -exec rm {} \;

Las barras invertidas (\) son importantes a la hora de ejecutar este comando. Usando el parámetro -exec permite la ejecución arbitraria de cualquier comando, en este caso rm, que será usado con el nombre del archivo encontrado que es sustituido en el lugar de las llaves {}.

Este comando podría resultar pligroso al ser ejecutado así que puedes usar otro parámetro -ok en vez de -exec. Si usas -ok cuando se encuentre algún archivo que coincida con el criterio de búsqueda se te preguntará antes de la ejecución de cualquier comando que siga a este -ok. Por ejemplo, para borrar opcionalmente todos los archivos terminados con .tmp en el directorio /var usa

find /var -name \*.tmp -ok rm {} \;

Personalmente me parece de gran utilidad.