Exiftoolで画像ファイルのフォルダ分け

ソフトウェア
記事内に広告が含まれています。

クロスプラットフォームで使えるツールソフトに「exiftool」があります。これ、便利ですよね。

対応しているフォーマットはたくさんあり、中でも写真画像や加工画像といったExifデータが正しくあれば取り扱えます。

写真もスクリーンショットも何万と大量にある中、バックアップするのに年月でフォルダ分けさせました。

コマンドで使う方法です。

コマンドで使うexiftool

基本はコマンドでの実行です。オプションの指定は豊富にあるので、一見すると難しいものですが、すべての機能を使うわけではありません。

Exifデータを基に、ファイル名を変更するなどが一般的でしょうか。

今回は、年月でのフォルダ分けだけで使います。

メディアが入っているフォルダ(images)の上位ディレクトリ(backup_img)内で実行しました。

├── backup_img
      ├── 2021
      ├── 2022
      ├── 2023
      ├── 2024
      ├── images

場所(Path)は気を付けてください。

コマンドを実行する階層に年月のフォルダを作成してくれます。そう。存在しない場合は新規で作成してくれて、同名であればその中に入れられるから便利です。

肝心のフォルダ分けするコマンドは、基本の書式が次の通りです。

exiftool "-Directory < DateTimeOriginal" -d "%Y/%m/%d" DIR

後半の-dオプションで指定している”%Y/%m/%d”がフォルダ名(年月日)、最後のDIRというのがターゲットになるディレクトリです。

取得判別させるExifデータ

そもそも、Exifの項目が画像によってどうなっているのか知りたいため、情報は見ておきます。分かっていれば飛ばします。

exiftool -g1 -a -s sample.jpg

今回は日時で判別させたいため、次のような日付データを確認します。

FileModifyDate                  : 2019:11:15 12:24:14+09:00
FileAccessDate                  : 2024:02:25 15:27:20+09:00
FileInodeChangeDate             : 2019:11:15 12:24:14+09:00
DateTimeOriginal                : 2019:09:17 12:32:05
CreateDate                      : 2019:09:17 12:32:05

写真であれば、DateTimeOriginalが良いでしょう。

加工した画像であったり、キャプチャ画像などは、FileModifyDateが適当でしょうか。

使用した書式

実際に使用したのは次の通りです。環境に合わせて変更してください。

ターミナル実行場所はbackup_img階層

exiftool '-Directory < DateTimeOriginal' -d "%Y/%m" -r images/

Exifデータの「DateTimeOriginal」から年月日を取得し、年フォルダ/月フォルダの階層で対象画像を移動させます。
対象画像はimages内のもので、-rオプションを付けてあるため、images内にサブフォルダがあった場合もスキャン対象になります。
サブフォルダは触って欲しくないのであれば、-rオプションは外します。

ターミナルにエラーが出るのは、主に移動先に同名ファイルが存在している場合と、そもそもExifデータが無いよ、といった場合がほとんどです。

それはDateTimeOriginalデータがないだけで、ファイル自体には日付データがあって移動させたい画像もあるため、別の項目からも判断させてみました。

exiftool '-Directory < FileModifyDate' -d "%Y/%m" -r images/

主に加工したスクリーショット画像などがそれにあたります。

一度、DateTimeOriginalで移動させた後、エラーで残ったファイルを再度FileModifyDateに置き換えたコマンドを実行しました。

対応指定無いファイルも紛れていることもあり、それはあとから手動で目視して処理します。

画像が多いと時間はかかります。ちゃんとディレクトリも新規作成してくれるし、手動で移動&コピーより楽です。

   24 directories scanned
   19 directories created
  860 image files updated
    1 files weren't updated due to errors

Macで使いましたがWindowsでもLinuxでもexiftoolがあれば同じです。

正規表現も含め、かなり細かく色々なExifデータからファイル操作を行えるので、詳しくは公式サイトで確認してください。

バージョンが古いと対応していない拡張子もあります。最新にしておきましょう。今はwebp形式にも対応していて助かります。