Encontre os arquivos entre duas datas de pasta no linux?

4

Eu preciso encontrar os nomes das pastas junto com os nomes dos arquivos que possuem minha string em seus conteúdos. Estou neste diretório " /data/queue/data " e tenho muitas pastas no mesmo diretório e dentro dessas pastas, tenho vários arquivos.

Abaixo estão as pastas deste diretório " /data/queue/data " e cada uma dessas pastas tem vários arquivos.

david@machineA:/data/queue/data$ ls -lrth
drwxr-xr-x 2 david david  12K Apr 11 18:58 1428800400
drwxr-xr-x 2 david david  12K Apr 11 19:58 1428804000
drwxr-xr-x 2 david david  12K Apr 11 20:58 1428807600

Eu quero executar um comando apenas deste diretório - " /data/queue/data ", mas ele deve encontrar apenas os arquivos dentro da pasta cujo registro de data e hora é de April 13th 3 AM to April 13th 9 AM .

Abaixo está o comando que eu tenho que irá recursivamente encontrar os arquivos dentro de todas as pastas, mas como devo ter certeza de que ele deve encontrar apenas arquivos de April 13th 3 AM to April 13th 9 AM pastas?

david@machineA:/data/queue/data$ grep -rl "pcV6URY" /data/queue/data

Qual é a melhor maneira de fazer isso?

    
por david 14.04.2015 / 04:01

1 resposta

6

Tente isto:

touch -d"April 13 3 AM" file1
touch -d"April 13 9 AM" file2
find . -newer file1 ! -newer file2 -exec grep -l "pcV6URY" {} +
rm file1 file2

Como funciona

find pode trabalhar diretamente com os horários, mas touch lida melhor com datas em estilo humano:

  • touch -d"April 13 3 AM" file1; touch -d"April 13 9 AM" file2

    Isso cria dois arquivos para marcar o início e o fim do intervalo de tempo.

  • find . -newer file1 ! -newer file2 -exec grep -l "pcV6URY" {} +

    Isso localiza arquivos mais recentes que file1 , mas não mais recentes que file2 . Para todos esses arquivos, ele executa grep para ver se eles contêm sua string.

por 14.04.2015 / 04:15