我有数千张 jpg 延时摄影,想知道是否可以仅列出白天拍摄的照片?因此,这不是列出两个日期之间的文件,而是列出任何日期的两个小时之间的文件。例如:早上 6 点到下午 6 点之间。
我可以使用 find 来做到这一点吗?
答案1
这个命令对我有用
find . -iname "*pg" -printf '%Tc %p\n' | grep "\ 08:\|\ 07:\| \06:"
尽管如此,它是文件的 unix 时间戳而不是用于搜索的 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小时)。