10-12-2022, 01:19 AM
(10-12-2022, 01:00 AM)adrolmar escribió:Muchas gracias por tu pronta respuesta. Mañana probaré lo que indicas y te confirmo. Otra cosa, en vez de ser una fecha en concreto, podría ser más antiguos de x tiempo?? Es decir, eliminar directorios o ficheros sea el nombre que sea y más antiguos de 10 días atrás desde la fecha actual.(09-12-2022, 09:24 PM)isanchez@ticsam.com escribió: Hola buenas tardes. Me gustaría saber que código implementar para eliminar tanto directorios como archivos, sea el nombre que sea, más antiguos de una fecha en concreto. Me estoy volviendo loco y no logro sacar el código. Podríais ayudarme compañeros??
En caso de tratarse de un script Linux/QTS, seguramente te servirá esto:
Generas un fichero de referencia, con la fecha y el timestamp que te interese, y luego buscas los ficheros/directorios de "/ruta" que sean más antiguos o iguales que esa fecha, y los eliminas.
Por ejemplo, para eliminar ficheros/directorios más antiguos o iguales al 5 de febrero del 2020:
Código:# touch -t 202002050000 /tmp/2020-Feb-05-0000
# find /ruta ! -newer /tmp/2020-Feb-05-0000 | xargs rm -rf
# rm -f /tmp/2020-Feb-05-0000
Si lo quieres todo en una línea
Código:# touch -t 202002050000 /tmp/2020-Feb-05-0000 && ( find /ruta ! -newer /tmp/2020-Feb-05-0000 | xargs rm -rf ) && rm -f /tmp/2020-Feb-05-0000
El find no tiene operador de "más antiguo que", por lo que utilizamos el "más reciente que" negado (! -newer).
No lo he probado en QTS, pero sí en Linux, y he comprobado que QTS tiene la opción "-newer" de find y el comando "xargs", por lo que debería funcionar.
Se podría hacer usando un bucle for o un while, iterando sobre lo devuelto por el find, pero xargs seguramente sea una opción más rápida y eficiente.
Muchísimas gracias de nuevo!!