カメラ取り込み
カメラや SDカードから取り込んだ写真を、撮影した日付ごとのフォルダに分けたい。
2026-08-15 のような日付別フォルダを作って、その中に入れたい。
Mac の標準機能では、これが素直にできません。理由と、実際に動く方法を4通り書きます。
この記事の内容
先に結論だけ。
一度だけ整理したいなら、方法1のコマンド1行で足ります。 この記事に書いてあるものをそのまま貼れば動きます(検証済み)。
撮って帰るたびに毎回やるなら、コマンドを毎回打つのは続きません。 Automator か 専用アプリで自動にする必要があります。
標準の「イメージキャプチャ」は、この用途には使えません。 分けてくれるのは取り込んだ日で、撮影日ではないからです。理由は次の節に。
macOS 標準の「イメージキャプチャ」には、カードを挿すと自動で読み込む オートインポータという仕組みがあります。読み込み先のフォルダを決められて、 サブフォルダも作ってくれます。
ただし、そのサブフォルダの基準は「読み込んだ日」です。 1年前に撮ったカードを今日挿せば、今日の日付のフォルダに入ります。 旅行から帰って何日か経ってから取り込むと、撮影日とずれます。
日付別のフォルダ自体は作られます。その日付が撮影日ではない、というのがここの落とし穴です。
撮影日で分ける設定はありません。 ここが、多くの人が最初に詰まるところです。
写真.app は撮影日で並べてくれますし、日付での検索も得意です。 ただしフォルダにはなりません。独自のライブラリの中で管理するので、 Finder から普通のフォルダとして辿ることができません。
Lightroom や Capture One で現像する人、フォルダごと外付けに移して保管したい人には 向きません。逆に、写真.app の中だけで完結する人には、これで足ります。
写真の中には EXIF という撮影情報が埋め込まれていて、
その中に撮影日時(DateTimeOriginal)があります。
これを読んでフォルダを作れば、撮影日で分けられます。
使うのは exiftool という定番のツールです。 Homebrew が入っていれば1行で入ります。
brew install exiftool
Homebrew を使わない場合は exiftool.org から macOS 用のパッケージを入れられます。
カードが /Volumes/NO NAME にマウントされているとして、
~/Pictures の下に撮影日フォルダを作ってコピーします。
exiftool -r -o '%f.%e' '-Directory<DateTimeOriginal' \ -d "$HOME/Pictures/%Y-%m-%d" "/Volumes/NO NAME/DCIM"
結果はこうなります。
オプションの意味です。
-r — サブフォルダも辿ります(DCIM の下は階層になっています)-o '%f.%e' — 移動ではなくコピーにします。元の名前(%f)と拡張子(%e)をそのまま使います-Directory<DateTimeOriginal — 行き先のフォルダを撮影日時から決めます-d — その日時をどう文字にするか。%Y-%m-%d で 2026-08-15 になります。これがそのまま日付ごとのフォルダ名です
-o '%f.%e' を付け忘れると、コピーではなく移動になります。
カードから写真が消えます。心配なときは、まず数枚だけ入ったフォルダで試してください。
-d に渡すパスは絶対パスにしてください(上の例の $HOME/...)。
相対パスにすると、いまターミナルがいる場所にフォルダが作られます。
複数のカメラを使っていると、同じ日のフォルダに全部混ざります。
機種名(Model)を1階層挟むと分かれます。
exiftool -r -o '%f.%e' '-Directory<${DateTimeOriginal}/${Model}' \
-d "$HOME/Pictures/%Y-%m-%d" "/Volumes/NO NAME/DCIM"
機種名はカメラが書いた文字がそのまま出ます。ソニーの α7III は
ILCE-7M3 のような型番になります。
上の2つのコマンドは、2026年8月に exiftool 13.55 で実際に動かして確認したものです。
毎回ターミナルを開くのは続きません。Automator で「アプリケーション」を作り、 中にシェルスクリプトを実行のアクションを置いて上のコマンドを貼れば、 ダブルクリック1回で走るようになります。
さらに フォルダアクション にすると、決めたフォルダにファイルが入った瞬間に 走らせることもできます。
ただし、カードを挿したときに自動で始めることはできません。
Automator にはボリュームのマウントを引き金にする仕組みがないためです
(launchd の StartOnMount を自分で書けば可能ですが、
設定ファイルを手で作ることになります)。
AppleScript で組む記事もよく見つかりますが、 複数の機種のファイルを一度に入れると全部1つのフォルダにまとまるという 制限を、書いている本人が注意書きしているものが多いです。EXIF ではなく ファイルの作成日時を見ている実装だと、そうなります。
Hazel($42 買い切り)は、 フォルダを見張って条件に合うファイルを自動で処理してくれる定番のアプリです。 「ダウンロードフォルダを片付ける」用途で有名です。
写真の整理にも使えますが、EXIF の撮影日を主役にした道具ではありません。 撮影日での振り分けをやろうとすると、結局 exiftool を呼ぶルールを自分で組むことになります。 そしてコピーが壊れていないかの確認はしません。
撮影日でも機種別でも分けられて、コピー後のハッシュ照合まで持っています。 無料版があり、Pro が €19.99 の買い切りです。 ここで挙げるなかでは、機能がいちばん近いアプリです。
ただし日本語がありません(英語・スペイン語・フランス語)。 macOS 14 以降が必要です。
上の方法を全部やったうえで、自分が毎回困っていたところを埋めるために作りました。 カードを挿すと自動で始まり、撮影日 × 機種 × 種類で分けて、 コピーしたあと1枚ずつ読み直して照合します。
ひとつだけ、他にない部分があります。その日の名前を聞かれます。
日付だけのフォルダは、並べ替えはできますが探せません。 半年後に「あの花火の写真どこだっけ」と思ったとき、日付を思い出す必要があります。 名前が付いていれば、その手間がありません。
macOS 13 以降・日本語・いまは無料のテスト版です。動作を確認できているカメラは まだ3機種だけなので、正直に書いておきます。
方法1のコマンドは本当に使えます。そのうえで、毎回のカード取り込みに使うと 足りなくなるところを、正直に書いておきます。
.LRF、GoPro の .LRV、ソニーの SUB/ などです
これらが要らない用途なら、方法1で十分です。 要るようになったときに、この記事に戻ってきてください。
← カメラ取り込みについて