Como encontrar arquivos criados entre hh: mm e HH: MM para qualquer dia?

0

Por exemplo, encontre todos os arquivos criados entre 20:00 e 23:30 para qualquer dia (não um dia específico)?

estava passando por man find e não viu nada que fizesse isso.

Eu teria que escrever meu próprio script para analisar os tempos de criação?

    
por marathon 05.02.2015 / 00:29

2 respostas

1

Você pode usar -newerXY para encontrar arquivos entre esses horários em um dia específico , como em:

find -newermt "20150203 2000" -a \! \( -newermt "20150203 2330" \)

Eu usei o tempo de modificação porque o meu sistema de arquivos ext4 não armazena os tempos de criação. Se você tem um sistema de arquivos que suporta, você pode usar -newerBt .

Se você precisar encontrar arquivos entre os horários em qualquer dia, precisará executar um script para cada arquivo na sua lista find . O comando mais fácil para isso seria stat -c %y "$1" e, em seguida, extrair e analisar o campo de tempo.

Você poderia fazer aritmética nos segundos do dia (($(stat -c %Y "$1") % 86400)) , verificando se está entre 72.000 e 84600, mas isso ignoraria o horário de verão, identificando arquivos modificados entre as 21:00 e as 00:30 durante o verão.

    
por 05.02.2015 / 02:46
1

Use este comando abaixo:

find . -mtime $(date +%s -d"Aug 10, 2013 23:30:00") -mtime $(date +%s -d"Aug 1, 2013 20:00:00")

ou tente isto:

find /var/tmp -mtime +2 -a -mtime -8 -ls

para encontrar arquivos com mais de dois dias, mas não mais de oito dias.

    
por 05.02.2015 / 00:35