날짜를 무시하고 특정 두 시간 사이에 생성된 파일을 찾을 수 있습니까?

날짜를 무시하고 특정 두 시간 사이에 생성된 파일을 찾을 수 있습니까?

수천 장의 jpg 저속 촬영이 있는데 낮에 촬영한 것만 나열할 수 있는지 궁금합니다. 따라서 두 날짜 사이의 파일을 나열하는 대신 특정 날짜의 두 시간 사이의 파일을 나열합니다. 예: 오전 6시부터 오후 6시 사이.

이 작업을 수행하기 위해 find를 사용할 수 있습니까?

답변1

이 명령은 나에게 효과적이었습니다.

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

그래도 검색용 EXIF ​​데이터 타임스탬프가 아닌 파일의 유닉스 타임스탬프입니다. 성능은 잘 모르겠지만 findutils태그로 표시한 대로 이 답변을 드렸습니다.

답변2

파일에 생성 날짜와 시간이 포함된 EXIF ​​데이터가 있는 경우 exiftool시간과 파일 이름만 나열하고 필터링할 수 있습니다.

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

먼저 파일의 날짜/시간을 확인하여 현지 시간인지 아니면 시간대 오프셋이 있는 UTC인지 확인합니다. 단일 파일에서 실행하면 exiftool -CreateDate출력은 다음과 같습니다.

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

오프셋이 있는 경우(이 경우 +8시간)

관련 정보