É possível encontrar arquivos criados entre dois momentos específicos, ignorando as datas?

4

Eu tenho um lapso de tempo de milhares de jpgs e gostaria de saber se é possível listar apenas as fotos tiradas durante o dia? Portanto, não se trata de listar os arquivos entre duas datas, mas listar os arquivos entre duas horas em qualquer data. por exemplo: entre as 6 da manhã e as 6 da tarde.

Posso fazer isso usando o find?

    
por user179500 13.07.2016 / 07:53

2 respostas

2

este comando funcionou para mim

find . -iname "*pg" -printf '%Tc %p\n' | grep "\ 08:\|\ 07:\| :"

todavia, os timestamps unix dos arquivos não são o registro de data e hora exif data usado para a pesquisa e não tenho certeza sobre o desempenho, mas eu dei essa resposta como você indicou findutils como tag

    
por 13.07.2016 / 07:56
2

Se os seus arquivos tiverem dados EXIF que incluam a data e a hora da criação, você poderá usar exiftool para listar apenas a hora e o nome do arquivo e filtrar:

find . -name '*jpg' -exec exiftool -q -d '%H' -p '$CreateDate $filename' \; 2>/dev/null |
awk '$1>=6 && $1<18 {$1=""; print}'

Cuidado, verifique se a data / hora nos arquivos está na hora local ou UTC com um deslocamento de fuso horário primeiro. Execute exiftool -CreateDate em um único arquivo e a saída será algo como

Create Date   : 2013:06:19 14:03:13+08:00

se tiver um deslocamento (+8 horas neste exemplo).

    
por 13.07.2016 / 10:39

Tags