それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

exiftool でカラム表示で撮影日とファイル名を一覧する

exiftoolでファイル名とカラム表示したい

ls -alt 的な感じでexiftools で写真のEXIFデータを見たい

-T でカラム表示

exiftool -T にすると、カラム(タブ区切り)で表示できる

ファイル名を表示したい

exiftool -filename でファイル名を表示できる

写真のタイムスタンプ(日時)を表示したい

DateTimeOriginal がシャッターを押した日付になる。

exiftool -DatetimeOriginal

lsコマンドみたいに撮影時刻を見る

すべてまとめて、次のようにコマンドを作ることができる。

takuya@mac:~/Photos/2022/06$ exiftool -T -filename  -datetimeoriginal *.jpg
IMG_6820.jpg    2022:06:01 01:22:12
IMG_6829.jpg    2022:06:01 19:55:41
IMG_6832.jpg    2022:06:02 14:44:53
IMG_6836.jpg    2022:06:03 14:32:40
IMG_6837.jpg    2022:06:04 15:48:09
IMG_6838.jpg    2022:06:04 15:48:11
IMG_6840.jpg    2022:06:04 23:12:00

通常のexiftoolの場合

カラム(縦方法)に1行に表示しない場合は、複数行に記載されてしまい、コマンドから非常に扱いにくい。

takuya@mac:~/Photos/2022/06$ exiftool -s -filename -datetimeoriginal IMG_6838.jpg
======== IMG_6860.jpg
FileName                        : IMG_6860.jpg
DateTimeOriginal                : 2022:06:07 22:58:26
======== IMG_6861.jpg
FileName                        : IMG_6861.jpg
DateTimeOriginal                : 2022:06:07 22:58:40
======== IMG_6862.jpg
FileName                        : IMG_6862.jpg
DateTimeOriginal                : 2022:06:07 22:58:57
   22 image files read

ファイルの生成日・更新日・撮影日を一覧する

exiftool -T -Filename  -DatetimeOriginal -CreateDate -FileModifyDate -file *.jpg 

このコマンドは大文字小文字を区別しないようですね。

exiftool -T -filename  -datetimeOriginal -createDate -filemodifydate -file *.jpg 

このコマンドを使って、ファイル更新日と撮影日がずれているファイルを見つけたり、撮影日が未設定のファイルを探す事ができる。便利

xargs と組み合わせて処理を高速化

xargs のマルチプロセス機能を組み合わせて、限界までCPUを使って演算を高速化する。

ls *.jpg | xargs -P10 -I@ exiftool -T -filename  -datetimeoriginal @

写真フォルダには数千枚のファイルがあるので、xargs と組み合わせるとすこし速いかもしれない。

ただし、プロセス生成のオーバーヘッドがあるのでexiftool に複数ファイルを引数に渡すのと比べて、遅くなる場合も多い。

exiftool コマンドのインストール

sudo apt install libimage-exiftool-perl

参考資料

  • man exiftool