Como encontro arquivos com mais de 1 dia usando o mtime? [duplicado]

1

Estou tentando remover todos os arquivos com mais de 1 dia de idade. Antes de executar um script para remover os arquivos, tento localizar os arquivos usando o mtime. no entanto, enfrento o mesmo problema com o meu comando -

Minha data atual é

Wed Jan 27 11:49:20 BDT 2016

Minhas listas de arquivos são-

Jan 25 15:11 25-01-2016.txt            
Jan 26 13:05 26-01-2016.txt    
Jan 27 02:30 27-01-2016.txt    
Jan 25 15:11 dfk-25-01-2016.txt    
Jan 26 13:05 dfk-26-01-2016.txt      
Jan 27 02:30 dfk-27-01-2016.txt 

Achei que -mtime +1 deveria listar todos os arquivos com mais de um dia.

find /etc/output/*.txt -mtime +1
find /etc/output/*.txt -mtime +0

/output/25-01-2016.txt
   /output/dfk-25-01-2016.txt

find /etc/output/*.txt -mtime -1

/output/26-01-2016.txt
  /output/27-01-2016.txt
  /output/dfk-26-01-2016.txt
  /output/dfk-27-01-2016.txt

Minha saída de saída desejada é a seguinte,

find /etc/output/*.txt -mtime +1

/output/25-01-2016.txt
  /output/dfk-25-01-2016.txt

find /etc/output/*.txt -mtime +0

/output/26-01-2016.txt
  /output/dfk-26-01-2016.txt
  /output/25-01-2016.txt
  /output/dfk-25-01-2016.txt

    
por Nishat 27.01.2016 / 10:54

1 resposta

8

Dois pontos: encontrar "ignora partes fracionárias". Eu acho que calcula o número de horas, divide por 24 e integeriza o resultado (descarta a fração). Portanto, -mtime 0 verifica um arquivo, compara o mtimes, converte em horas e divide em 24. Se a parte inteira desse resultado for 0, é uma correspondência. Isso significa que 0.99999 horas atrás irão combinar. Então -mtime +0 corresponde a qualquer arquivo cuja diferença de mtime seja de pelo menos 24 horas.

Em segundo lugar, se você quiser que mtime conte os dias da agenda, e não n -24 horas a partir de agora, use -daystart . Então -daystart -mtime 0 significa hoje e -daystart -mtime +0 significa antes de hoje.

    
por 27.01.2016 / 11:22