Me gustaría ejecutar un trabajo cron nocturno que elimine todos los archivos en una carpeta a la que no se haya accedido en una semana o más. ¿Cuál es la forma más eficiente de hacer esto en bash?
Me gustaría ejecutar un trabajo cron nocturno que elimine todos los archivos en una carpeta a la que no se haya accedido en una semana o más. ¿Cuál es la forma más eficiente de hacer esto en bash?
Respuestas:
Tú quieres la find
herramienta .
find folder -depth -type f -atime +7 -delete
(Esto eliminará todos los archivos ( solo los normales , sin canalizaciones, dispositivos especiales, directorios, enlaces simbólicos) en la carpeta dada y todos los subdirectorios (recursivamente) donde el último tiempo de acceso es más largo que hace 7 días).
-type f
allí para asegurarse de que solo elimine archivos, no directorios completos.
Es posible que desee verificar tmpwatch
qué se puede poner en un trabajo cron. No hay necesidad de rodar tu propio confind
. En RHEL está en las tmpwatch
RPM.
find
.
find
puede filtrar en función de atime. La "corrección" de atime depende de la configuración (vernoatime
), como mínimo.