Tip: Borrando archivos antiguos en Linux con find

Marzo 4, 2007 · Imprime esta entrada

ConsolaHace poco tuve que borrar los archivos que tuvieran mas de 40 días de antiguedad en un servidor linux. Esto se puede hacer fácilmente con el comando find, en una sola línea como nos gusta a algunos, sólo hay que ejecutar lo siguiente en la consola:

/usr/bin/find < DIRECTORIO > -mtime +< NUMERO_DE_DIAS > -exec rm -f {} \;

Sólo tenemos que sustituir los parámetros < DIRECTORIO > y < NUMERO_DE_DIAS >. Adicionalmente podríamos agregar la opción -maxdepth < nivel > en caso de que el directorio tuviera subdirectorios, con < nivel > le indicamos cuanto queremos que profundice en ellos, por ejemplo si no queremos entrar en subdirectorios < nivel > sería 1.

Algunos ejemplos de su uso:

/usr/bin/find /home/jcab/tutoriales/ -maxdepth 1 -mtime +100 -exec rm -f {} \;

Si quiero medir el tiempo en minutos en lugar de días utilizo -mmin en lugar de -mtime:

/usr/bin/find /tmp/ -maxdepth 2 -mmin +45 -exec rm -f {} \;

Comentarios

4 respuestas a “Tip: Borrando archivos antiguos en Linux con find”

  1. Jose Tapia el 19/11/2009 3:52 pm

    Muchas gracias por los tips me hacian falta la verdad, dema gracias sigan asi

  2. zinkro el 1/09/2010 1:30 am

    buen aporte,
    puedes sustituir ‘-exec rm -f {} \;’ por ‘-delete’ y seria algo mas elegante…
    saludos

  3. Juan el 25/09/2010 3:44 am

    Se eliminan también los directorios?
    Si no fuese así podrías añadirlo.
    Gracias.

  4. cloud_one el 19/05/2011 1:11 pm

    Si quieres que se eliminen tambien los directorios, basta con añadir-le el parámetro de recursividad ‘-r”.
    El exec quedaria: -exec rm -rf {} \;

¿Quieres dejarnos tu opinión?