Localizando arquivos não gerenciados com mais de 6 meses

0

Estou tentando encontrar todos os arquivos que não foram tocados por seis meses ou mais. Eu executei este comando, mas ele mostra apenas todos os arquivos que foram editados a cada 6 meses.

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

Como eu faria isso então são 6 meses ou mais?

    
por Matthew Perrott 04.10.2016 / 14:04

2 respostas

2

-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, que tem uma duração variável que é a parte do dia terrestre, não a definição ISO de duração fixa do segundo. Então todos os dias são 86400 segundos, nós don ' t precisa considerar por segundos bissextos).

Com -mtime +183 , você recebe arquivos cuja idade arredondada para o próximo período de 24 horas é estritamente maior que 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 que dia por causa das opções de horário de verão em algumas regiões.

Com algumas implementações find (FreeBSD, GNU), você também pode usar ! -newermt '6 months ago' . mt compara o m tempo de odificação com o t ime fornecido como argumento.

Isso vai dar arquivos modificados antes do mesmo dia do mês, mesma hora 6 meses atrás, mas no caso do GNU find (ao contrário do FreeBSD) ele não faz o ajuste DST (em fusos horários onde o DST se aplica), ou seja, fornece as informações como se estivessem em um fuso horário UTC. Se agora é 2016-07-01 13:00 (horário de verão), o FreeBSD find reportaria arquivos modificados pela última vez antes de 2016-01-01 13:00 (horário de inverno), enquanto o GNU find reportaria arquivos modificados antes 2016-01-01 12:00 (horário de inverno). Pode haver variações também quando chamado nos dias 29, 30 ou 31 do mês e o mês 6 meses atrás não tem essa data.

    
por 04.10.2016 / 14:27
2

Adicione um + na frente do valor do dia. Na página do 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 teste atime , é o mesmo para os testes mtime e ctime .

    
por 04.10.2016 / 14:09

Tags