linux file-io resource-cleanup

linux - ¿Cómo eliminar todos los archivos anteriores a 3 días cuando la "Lista de argumentos es demasiado larga"?



file-io resource-cleanup (3)

Otra solución para la pregunta original, esp. Útil si desea eliminar SOLO ALGUNOS de los archivos más antiguos en una carpeta, sería algo así:

find . -name "*.sess" -mtime +100

y así sucesivamente ... Las citas bloquean comodines de shell, lo que le permite "buscar" millones de archivos :)

Tengo un directorio de archivos de registro que tiene 82000 archivos y directorios (aproximadamente la mitad y la mitad).

Necesito eliminar todos los archivos y directorios que tienen más de 3 días.

En un directorio que tiene 37000 archivos, pude hacer esto con:

find * -mtime +3 -exec rm {} /;

Pero con 82000 archivos / directorios, recibo el error:

/ usr / bin / find: lista de argumentos demasiado larga

¿Cómo puedo evitar este error para poder eliminar todos los archivos / directorios que tienen más de 3 días?


Para eliminar todos los archivos y directorios dentro del directorio actual :

find . -mtime +3 | xargs rm -Rf

O alternativamente, más en línea con el comando original de OP:

find . -mtime +3 -exec rm -Rf -- {} /;


También puede usar:

find . -mindepth 1 -mtime +3 -delete

Para no eliminar el directorio de destino