10-12-2022, 01:00 AM
(Este mensaje fue modificado por última vez en: 10-12-2022, 01:14 AM por adrolmar.)
(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.
TS-253A 2x4TB RAID1 8GB RAM
“La inteligencia es la habilidad de evitar hacer trabajo y conseguir que el trabajo se haga.” (Linus Torvalds)
“La inteligencia es la habilidad de evitar hacer trabajo y conseguir que el trabajo se haga.” (Linus Torvalds)