Encontrar archivos no administrados que tengan más de 6 meses

Encontrar archivos no administrados que tengan más de 6 meses

Estoy intentando encontrar todos los archivos que no se han tocado durante 6 meses o más. Ejecuté este comando pero solo muestra todos los archivos que se editaron hace 6 meses.

find . -type f -mtime 183 -exec ls -latr {} \;

¿Cómo haría esto para que dure 6 meses o más?

Respuesta1

-mtime 183es para archivos cuya antigüedad redondeada al siguiente período de 24 horas es igual a 183, por lo que para edades comprendidas entre 182*24*3600 segundos (exclusivo) y 183*24*3600 segundos (inclusive) (donde los segundos son segundos de Unix, es decir, tener una duración variable que es la parte 86400 del día terrestre, no la definición ISO de duración fija del segundo. Por lo tanto, todos los días son 86400 segundos, no necesitamos tener en cuenta los segundos intercalares).

Con -mtime +183, obtiene archivos cuya antigüedad redondeada al siguiente período de 24 horas es estrictamente superior a 183, de modo que para edades estrictamente superiores a 183*24*3600 segundos.

Tenga en cuenta que el período de 24 horas no es necesariamente el mismo que eldíadebido a los cambios de horario de verano en algunas regiones.

Con algunas findimplementaciones (FreeBSD, GNU), también puedes usar ! -newermt '6 months ago'. mtcompara el mtiempo de odificación con el ttiempo dado como argumento.

Eso dará archivos modificados antes del mismo día del mes, misma hora hace 6 meses, pero en el caso de GNU find(a diferencia de FreeBSD) no hace el ajuste de DST (en zonas horarias donde se aplica DST), eso es todo. le brinda la información como si estuviera en una zona horaria UTC. Si ahora es el 01/07/2016 a las 13:00 (horario de verano), FreeBSD findinformará los archivos modificados por última vez antes del 01/01/2016 a las 13:00 (horario de invierno), mientras que GNU findinformará los archivos modificados por última vez antes del 01/01/2016 12 :00 (horario de invierno). También puede haber variaciones cuando se llama los días 29, 30 o 31 del mes y el mes de hace 6 meses no tiene esa fecha.

Respuesta2

Agregue un +valor delante del día. Desde la página de manual:

   Numeric arguments can be specified as

   +n     for greater than n,

   -n     for less than n,

   n      for exactly n.

y

... When  find  figures  out
how  many  24-hour  periods  ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.

Aunque esto se refiere a la atimeprueba, ocurre lo mismo con las pruebas mtimey ctime.

información relacionada