[TIP] Eliminar ficheros por fecha de modificación

Estándar

Cuando tratamos con una buena cantidad de ficheros, a menudo nos vemos con la necesidad de borrar muchos archivos tanto por razones de limpieza, como de espacio en disco. Una de mis herramientas favoritas para esto es find. A menudo desconcida, esta herramienta nos permite bastante flexibilidad a la hora de buscar y ejecutar comandos automáticamente sobre el conjuntos de elementos encontrados con los filtros aplicados, además de poder usar los clásicos comodines y expresiones regulares.

Uno de los casos que he encontrado últimamente de más utilidad es eliminar ficheros basándome en su última fecha de modificación, además de en su nombre. Utilizando los argumentos y operadores correctos podemos conseguir lo siguiente:

find . -name "*your_pattern*" -and -not -mtime 5 -exec rm {} \;

Con el comando anterior conseguiremos filtrar los ficheros cuyos nombres cumplan con el patrón que necesitemos, en el árbol de directorios a partir en la carpeta actual (el punto en el comando significa esto), y que no haya sido modificado en los últimos cinco días. Esta lista de ficheros se utilizará entonces para ejecutar el comando indicado junto a la opción exec. Puede que veáis raro el uso de los corchetes en el comando a ejecutar, pero simplemente será sustituido con los elementos de la lista, uno por uno. Es decir, para la orden superior, el comando rm se ejecutará una vez por cada fichero filtrado.

Si configuramos el comando anterior en nuestro crontab podremos limpiar fácilmente nuestros ficheros de log o similares periódica y automáticamente.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s