Encontre arquivos com mais de 15 segundos, mas com mais de 2 segundos

14

Eu quero encontrar arquivos com mais de 15 segundos, mas com mais de 2 segundos. Aqui está o script que estou usando atualmente que pega arquivos com mais de 15 segundos:

find /my/directory -name '*.jpg' -not -newermt '-15 seconds'

Qualquer ajuda é muito apreciada

    
por Yllier123 26.10.2015 / 18:07

2 respostas

14

Você pode combinar vários predicados encadeando-os.

Não há -oldermt , mas você pode escrever isso como -not -newermt .

Você quer:

  • -newermt '-15 seconds' para dizer que o arquivo tem menos de 15 segundos e
  • -not -newermt '-2 seconds' para dizer que o arquivo tem mais de dois segundos

Tente:

find /my/directory -newermt '-15 seconds' -not -newermt '-2 seconds'

Ou para ser compatível com POSIX:

find /my/directory -newermt '-15 seconds' \! -newermt '-2 seconds'

Além disso, apenas para que você (e outros leitores) saibam, "mais recente" significa modificado mais recentemente que, não criado mais recentemente do que.

    
por 26.10.2015 / 18:15
4

Você não mencionou seu SO ....

Isso funciona bem com uma implementação de localização moderna como a do FreeBSD ou com sfind .

find /my/directory -name '*.jpg' -mtime -15s -mtime +2s

O Sfind faz parte das ferramentas da Schily: link

AVISO: Acabei de descobrir um problema em sfind . Se os argumentos -mtime forem menores que 60s, ele não funcionará corretamente, pois os tempos de arquivo são atualmente comparados com um registro de data e hora 60 segundos no futuro que foi originalmente calculado para a mudança de ano para -ls .

BTW: -not não pertence a find , é um GNUism não portátil.

    
por 26.10.2015 / 18:27

Tags