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 {} \;
¿ Leiste la manpage de find(1) (http://www.freebsd.org/cgi/man.cgi?query=find) ? 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)