exiftool で撮影日時もしくはファイル更新日時で一気にファイルをリネーム

2024年1月13日

定期的に必要になるけど、その度に方法を覚えてないです。
過去、Windowsのフリーソフトにお世話になったり、自作シェルスクリプトでやったりとかありましたが、今はexiftool で一気にできそうです。
exifが付属するファイルの場合は、撮影日時でYYYYMMDD_HHMMSS.SSS (最後はミリ秒)にリネーム、exifがない時はミリ秒の箇所をカウンターで置き換えてファイル更新日時でリネーム。
とりあえず以下のバージョンのexiftoolで、exifのあるファイル、無いファイルが混在しているディレクトリで所望のリネームができました。

$ exiftool -ver
11.88
exiftool -v '-filename<${FileModifyDate#;DateFmt("%Y%m%d_%H%M%S")}.%.3C.%e' '-Filename<${datetimeoriginal}.${subsectimeoriginal;$_.=0 x(3-length)}.%e' -d %Y%m%d_%H%M%S .

-filename は後から出てきたものが優先されるらしいのでワンライナーで可能です。以下のサイトを参考にさせていただきました。

ExifToolで写真と動画を日付フォルダに自動整理する-p–q

-r をつけるとディレクトリ再帰で一気に変更することもできますが、失敗した時のダメージも大きいのでお気をつけて…。

未分類

Posted by toshyon