何千枚ものjpgの低速撮影がありますが、日中に撮影したものだけを一覧表示できるかと思います。したがって、2 つの日付の間のファイルを一覧表示するのではなく、特定の日付の 2 時間の間のファイルを一覧表示します。例:午前6時から午後6時の間。
これを行うためにfindを使用できますか?
答え1
このコマンドは私にとって効果的でした。
find . -iname "*pg" -printf '%Tc %p\n' | grep "\ 08:\|\ 07:\| \06:"
それでも、検索用のEXIFデータタイムスタンプではなく、ファイルのUNIXタイムスタンプです。パフォーマンスはよくわかりませんが、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時間)