Estoy tratando de eliminar todos los archivos y carpetas en /tmp
dir que tienen más de un día.
Sé borrar todos los archivos y carpetas que tengo que hacer
rm -rf *
Pero no estoy seguro de qué otra forma encuentro todos los archivos y carpetas con más de un día de antigüedad para eliminarlos y colocar el cron.
Respuesta aceptada:
Primero, usa find
para seleccionar estos archivos:
find /tmp -mmin +1440
encontrará archivos que fueron modificados hace más de 1440 minutos. (Hay una opción para usar días en lugar de minutos, pero se redondea hacia arriba y +1 significará 2 días o más, lamentablemente. Consulte el aviso a continuación).
Pruebe esto, y si está satisfecho de que esto encuentra los archivos correctos, elimínelos de una vez:
find /tmp -mmin +1440 -delete
Ver man find
para otras posibilidades (hora del último cambio de estado, hora de acceso).
Aviso sobre el uso de -mtime +1
:
En hombre encontrar
Dice:
-mtimen
Los datos del archivo se modificaron por última vez hace n*24 horas.
Pero también dice:
Ver los comentarios para -atime
para comprender cómo afecta el redondeo a la
interpretación de los tiempos de modificación de archivos.
Los comentarios de -atime
decir:
Cuando find calcula cuántos períodos de 24 horas atrás se accedió por última vez al archivo
, se ignora cualquier parte fraccionaria, por lo que para hacer coincidir -atime +1 , se debe haber accedido a un archivo
hace al menos dos días.
En otras palabras, -mtime
puede contar solo en unidades de 24 horas o un día cada una hasta -mtime +1
va, esto significa exactamente más de un día por al menos un día (es decir, dos días o más)
-mmin
por otro lado puede contar en minutos. Entonces, si la precisión estricta es vital, entonces -mmin +1440
(1440 minutos =1 día) podría usarse en lugar de -mtime +1