¿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.
16
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 maxdepth
en el comando de búsqueda.
find /some/dir -type f -mtime +5 -delete
-ls
lugar de-delete
asegurarse de que esto no elimine todo lo que querían mantener. Sí, hablando por experiencia aquí./ some/dir/
versión. :(Con
zsh
y(.m+n)
calificadores glob :.
selecciona solo archivos regulares,m+n
selecciona 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:
agregar
D
para incluir archivos de puntos:o si desea repetir (y enumerar, por ejemplo, solo los archivos que terminan en
.log
):reemplace
print -rl
conrm
si está satisfecho con el resultado; aunque es posible que tenga que usarlozargs
si tiene muchos archivos (para evitar una lista de argumentos demasiado larga ):fuente