¿Hay un comando para eliminar todos los archivos en un directorio que no se han modificado en N días? Necesito limpiar algunos registros viejos.
¿Hay un comando para eliminar todos los archivos en un directorio que no se han modificado en N días? Necesito limpiar algunos registros viejos.
Respuestas:
Esto eliminará todos los archivos con más de 5 días de antigüedad, también puede poner un archivo -name '*log'allí para ser más preciso y también puede especificar un maxdepthen el comando de búsqueda.
find /some/dir -type f -mtime +5 -delete
/ some/dir/versión. :(
Con zshy (.m+n) calificadores glob : .selecciona solo archivos regulares, m+nselecciona archivos modificados hace más de n días;
por ejemplo, enumere los archivos en el directorio actual que se modificaron hace más de 9 días:
print -rl -- *(.m+9)
agregar Dpara incluir archivos de puntos:
print -rl -- *(D.m+9)
o si desea repetir (y enumerar, por ejemplo, solo los archivos que terminan en .log):
setopt extendedglob
print -rl -- **/*.log(.m+9)
reemplace print -rlcon rmsi está satisfecho con el resultado; aunque es posible que tenga que usarlo zargssi tiene muchos archivos (para evitar una lista de argumentos demasiado larga ):
autoload zargs
zargs ./**/*(.m+9) -- rm
-lslugar de-deleteasegurarse de que esto no elimine todo lo que querían mantener. Sí, hablando por experiencia aquí.