Banner 1

Eliminar archivos antiguos automáticamente

null
Buscando una forma de eliminar los archivos de cierta antigüedad de un directorio me topé con una “receta” (¿alguien sabe cómo traducir decentemente “tip”?) en la web Command-line Fu.

El problema es que no me funciona (el autor parece haberla colocado incompleta a tenor del \ que aparece al final de la misma) y es por ello que he optado por publicar una alternativa a dicho comando por si a alguno le puede ser de utilidad.

Para borrar todos los ficheros con más de 5 días de antiguedad del directorio /ruta_directorio deberemos ejecutar un

rm -f `find /ruta_directorio -mtime +5`

NOTA: Obsérvese que se hace uso del parámetro -f por lo que el sistema borrará los ficheros que cumplan la condición sin pedir confirmación. Si se quiere confirmar el borrado bastará con quitarlo; el “problema” es que nos preguntará qué hacer PARA CADA fichero.

De esta solución cabe destacar:

  1. El uso de las comillas ` como un medio de ejecutar un comando dentro de otro.
  2. El uso del parámetro -mtime del comando find para filtrar por la fecha de modificación. Para mayor información os recomiendo que consultéis los parámetros de find pues cuenta con variantes como atime, ctime y similares que os permiten saber, entre otras cosas, cuándo fue accedido el fichero por última vez.
FUENTE:http://andalinux.wordpress.com/2009/03/22/eliminar-archivos-antiguos-automaticamente/

2 comentarios:

Anónimo dijo...

he visto la referencia original, y le falta un punto y coma al final para q funcione, sería:

$ find /dir_name -mtime +5 -exec rm {} \;

a mí sí q me va

Unknown dijo...

muchas gracias por colaborar :D , aveces el copie y pege falla xD

saludos

Powered by Bad Robot
Helped by Blackubay