Encontrar arquivos não gerenciados com mais de 6 meses

Encontrar arquivos não gerenciados com mais de 6 meses

Estou tentando encontrar todos os arquivos que não foram tocados por 6 meses ou mais. Executei este comando, mas ele mostra apenas todos os arquivos que foram editados há 6 meses.

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

Como eu faria isso para que durasse 6 meses ou mais?

Responder1

-mtime 183é para arquivos cuja idade arredondada para o próximo período de 24 horas é igual a 183, portanto, para idades compreendidas entre 182*24*3600 segundos (exclusivo) e 183*24*3600 segundos (inclusive) (onde segundos são segundos Unix, isto é, tem uma duração variável que é a 86.400ª parte do dia terrestre, não a definição ISO de duração fixa do segundo. Portanto, todos os dias têm 86.400 segundos, não precisamos levar em conta os segundos bissextos).

Com -mtime +183, você obtém arquivos cuja idade arredondada para o próximo período de 24 horas é estritamente superior a 183, de modo que para idades estritamente superiores a 183*24*3600 segundos.

Observe que o período de 24 horas não é necessariamente o mesmo quediadevido às mudanças de horário de verão em algumas regiões.

Com algumas findimplementações (FreeBSD, GNU), você também pode usar ! -newermt '6 months ago'. mtcompara o mtempo de odificação com o ttempo dado como argumento.

Isso fornecerá arquivos modificados antes do mesmo dia do mês, mesma hora de 6 meses atrás, mas no caso do GNU find(ao contrário do FreeBSD) ele não faz o ajuste do horário de verão (nos fusos horários onde o horário de verão se aplica), é isso fornece as informações como se estivesse em um fuso horário UTC. Se agora for 01/07/2016 às 13:00 (horário de verão), o FreeBSD findreportará os arquivos modificados pela última vez antes de 01/01/2016 às 13:00 (horário de inverno), enquanto o GNU findreportará os arquivos modificados pela última vez antes de 01/01/2016 12 :00 (horário de inverno). Também pode haver variações quando convocado nos dias 29, 30 ou 31 do mês e o mês de 6 meses atrás não possui essa data.

Responder2

Adicione um +na frente do valor do dia. Na página de manual:

   Numeric arguments can be specified as

   +n     for greater than n,

   -n     for less than n,

   n      for exactly n.

e

... 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.

Embora isso se refira ao atimeteste, é o mesmo para os testes mtimee ctime.

informação relacionada