Lista de arquivos modificados entre período de tempo perticular

7

Eu estou tentando obter lista de arquivos modificados entre determinado período de tempo como explicar em esta resposta.

Eu armazenei data e hora em duas variáveis [nn e nn1 (nomeação estúpida)] e tentei com o comando find . Eu tenho seguinte erro -

vikram@vikram-Studio-XPS-1645:~$ echo $nn1
10-04-12 23:26:48
vikram@vikram-Studio-XPS-1645:~$ echo $nn
10-05-12 00:26:48
vikram@vikram-Studio-XPS-1645:~$ find . -newermt $nn -and -not -newermt $nn1 -print
find: paths must precede expression: 00:26:48
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
vikram@vikram-Studio-XPS-1645:~$

Por que esse erro ocorre ??

    
por Vikram 04.10.2012 / 21:49

1 resposta

12

Sua sintaxe está ligeiramente desativada. Vamos refazer isso com nomes de variáveis significativos; nós entenderemos melhor o que está acontecendo à medida que avançamos.

export newerthan="2012-10-04 00:05:00"
export olderthan="2012-10-05 16:30:00"
find . -newermt "$newerthan" ! -newermt "$olderthan"

Isso primeiro localizará arquivos e diretórios modificados depois de 4 de outubro de 2012, às 00:05. Em seguida, ele removerá os resultados que foram modificados depois de 5 de outubro de 2012, às 16h30.

Para obter resultados sem o primeiro ./ em cada linha, use este comando:

find . -newermt "$newerthan" ! -newermt "$olderthan" | sed 's/^.\///g'
    
por SirCharlo 04.10.2012 / 21:55