eliminar directorios antiguos en linux

Iniciado por kinos, 25 Septiembre 2010, 04:54 AM

0 Miembros y 1 Visitante están viendo este tema.

kinos

Holas, cómo puedo hacer esto?

   Dado un número de días (30 dias) y un directorio base (/home/usuario/Escritorio/DirBase/) elimina todos los subdirectorios (no es necesario que sea recursivo para sus subdirectorios) con antigüedad mayor a la indicada.

   Tenemos:

   /home/usuario/Escritorio/DirBase/

   De ahí cuelgan varios directorios:

    /home/usuario/Escritorio/DirBase/a (supera los 30 días)
    /home/usuario/Escritorio/DirBase/b (no llega a los 30 días)
    /home/usuario/Escritorio/DirBase/b/b1 (no debe entrar aquí)
    /home/usuario/Escritorio/DirBase/b/b2 (no debe entrar aquí)
    /home/usuario/Escritorio/DirBase/c (supera los 30 días)

   Ejecutamos el comando y debería quedar lo siguiente:

    /home/usuario/Escritorio/DirBase/b
    /home/usuario/Escritorio/DirBase/b/b1
    /home/usuario/Escritorio/DirBase/b/b2
   
   He probado con esto, que es lo que utilizo para eliminar archivos antiguos
pero me ha eliminado también el padre y no se muy bien que hace:

/usr/bin/find /home/usuario/Escritorio/DirBase/ -maxdepth 1 -mtime +30 -type d -exec rm -f {} \;

Foxy Rider

#1
¿ Leiste la manpage  de find(1) ?  las manpages explican "lo que hace" cada argumento

Saludos.

P.S : esa linea es correcta, yo le agregaría un "r" al rm para que borre el directorio "a" (si no borrás recursivamente, no se borran los directorios)