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