写真、撮りますよね。
撮った写真は、iPhotoとかでMacに取り込みます。
その後は、画像ファイルとして、コピーしたり、
開いたり、メールに添付して送ってみたりします。
そのときに不満なのが、
だいたいの場合、変なファイル名になっていること
です。
DSC012345.jpg
とか言われても、いつ撮った写真か全然わからない。
写真がいっぱいある場合、
一個ずつ「情報を見る」とかやってられないし、
ファイル名を見ただけで、
いつ撮った写真かパッとわかりたい
ということなんですよ。
で、調べてやってみた結果をまとめておきます。
ファイルの作成日時=撮影日時の場合:Automatorを使う
Mac標準アプリ「Automator」でファイル名を一括リネームする方法と作成したアクションを削除する方法
「ファイルの作成日時」=「撮影日時」の場合は、
「ファイルの作成日時」を「ファイル名」にすればいいです。
その場合は、上の方法を使えます。
結構カンタン。
しかし、
「ファイルの作成日時」≠「撮影日時」の場合は、
残念ながらこの方法は使えず、
exifの情報から撮影日時を取得する必要があります。
それが、以下の方法で、ちょっとめんどくさい。
(私のケースは、残念ながらこっちだった。)
ファイルの作成日時≠撮影日時の場合:exiv2を使う
こちらを参考に作業をします。
→ 写真取り込み&EXIF情報にあわせてファイル名を変更 - 短期記憶容量少ナキ我ガ爲ノ備忘録也
流れは以下の通り。
⒈ Xcodeを「App Store」アプリでインストールする
⒉ AppleのDeveloperサイトに行き、Member Centerからログインする
(アカウントがない場合は作る)
⒊ ログインできたらDownloadsを開き、
「Command Line Tools(OS X Mavericks) for Xcode - March 2014」
をダウンロード、インストール
(OSがMavericksでない場合は、使っているOSの名前のファイルをダウンロードする)
⒋ MacPortsでexiv2をインストールする
sudo port install exiv2
brewがいい人は
brew install exiv2
でもOK。
参考:OS X El Capitan で Homebrew を使う方法 (2016年3月更新) - 意識低い開発者のBlog
⒌ Automatorに以下のシェルスクリプトを入れてフローを作る
# exiv2 は MacPorts で入れてるので path を追加(brewなら不要)
export PATH=${PATH}:/opt/local/bin:/usr/local/bin
# exiv2 が見つからなければ終了
if ! which exiv2 2>&1 > /dev/null ; then
exit 1
fi
for f in "$@"; do
# EXIF にキー Exif.Photo.DateTimeOriginal が含まれている場合のみ
if exiv2 -Pk "${f}" | grep -q Exif.Photo.DateTimeOriginal ; then
# EXIF データに基づいてファイル名を変更
exiv2 -r'%Y%m%d_%H%M%S' rename "${f}"
fi
done
⒍ 「Finderで名前を変えたい画像ファイルを選択した状態」で
上で作ったAutomatorのフローの実行ボタンを押せば、
パパッとファイル名が変わった!
これならファイル何百個だって余裕だ!
ということで、無事できました。
来月には忘れている自信があるので、
将来の自分がほめてくれるのが楽しみです。