カメラ取り込み

Macで写真を撮影日ごとにフォルダ分けする方法

カメラや SDカードから取り込んだ写真を、撮影した日付ごとのフォルダに分けたい。 2026-08-15 のような日付別フォルダを作って、その中に入れたい。 Mac の標準機能では、これが素直にできません。理由と、実際に動く方法を4通り書きます。

この記事の内容

  1. なぜ標準機能では撮影日で分けられないのか
  2. 方法1: コマンド1行で分ける(無料・すぐできる)
  3. 方法2: Automator でボタンにする
  4. 方法3: Hazel で自動化する(有料)
  5. 方法4: 専用のアプリを使う
  6. どれを選ぶか
  7. コマンドでは埋まらない5つのこと

先に結論だけ。

一度だけ整理したいなら、方法1のコマンド1行で足ります。 この記事に書いてあるものをそのまま貼れば動きます(検証済み)。

撮って帰るたびに毎回やるなら、コマンドを毎回打つのは続きません。 Automator か 専用アプリで自動にする必要があります。

標準の「イメージキャプチャ」は、この用途には使えません。 分けてくれるのは取り込んだ日で、撮影日ではないからです。理由は次の節に。

なぜ標準機能では撮影日で分けられないのか

イメージキャプチャ(オートインポータ)

macOS 標準の「イメージキャプチャ」には、カードを挿すと自動で読み込む オートインポータという仕組みがあります。読み込み先のフォルダを決められて、 サブフォルダも作ってくれます。

ただし、そのサブフォルダの基準は「読み込んだ日」です。 1年前に撮ったカードを今日挿せば、今日の日付のフォルダに入ります。 旅行から帰って何日か経ってから取り込むと、撮影日とずれます。

日付別のフォルダ自体は作られます。その日付が撮影日ではない、というのがここの落とし穴です。

撮影日で分ける設定はありません。 ここが、多くの人が最初に詰まるところです。

写真.app

写真.app は撮影日で並べてくれますし、日付での検索も得意です。 ただしフォルダにはなりません。独自のライブラリの中で管理するので、 Finder から普通のフォルダとして辿ることができません。

Lightroom や Capture One で現像する人、フォルダごと外付けに移して保管したい人には 向きません。逆に、写真.app の中だけで完結する人には、これで足ります。

方法1: コマンド1行で分ける(無料・すぐできる)

写真の中には 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"

結果はこうなります。

~/Pictures/2026-08-15/DSCF1234.JPG
~/Pictures/2026-08-15/DSCF1235.JPG
~/Pictures/2026-08-20/DSCF1236.JPG

オプションの意味です。

先に確かめてください

-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"
~/Pictures/2026-08-15/X-E5/DSCF1234.JPG
~/Pictures/2026-08-15/X-E5/DSCF1235.JPG
~/Pictures/2026-08-20/ILCE-7M3/DSC00001.ARW

機種名はカメラが書いた文字がそのまま出ます。ソニーの α7III は ILCE-7M3 のような型番になります。

上の2つのコマンドは、2026年8月に exiftool 13.55 で実際に動かして確認したものです。

方法2: Automator でボタンにする

毎回ターミナルを開くのは続きません。Automator で「アプリケーション」を作り、 中にシェルスクリプトを実行のアクションを置いて上のコマンドを貼れば、 ダブルクリック1回で走るようになります。

さらに フォルダアクション にすると、決めたフォルダにファイルが入った瞬間に 走らせることもできます。

ただし、カードを挿したときに自動で始めることはできません。 Automator にはボリュームのマウントを引き金にする仕組みがないためです (launchd の StartOnMount を自分で書けば可能ですが、 設定ファイルを手で作ることになります)。

AppleScript で組む記事もよく見つかりますが、 複数の機種のファイルを一度に入れると全部1つのフォルダにまとまるという 制限を、書いている本人が注意書きしているものが多いです。EXIF ではなく ファイルの作成日時を見ている実装だと、そうなります。

方法3: Hazel で自動化する(有料)

Hazel($42 買い切り)は、 フォルダを見張って条件に合うファイルを自動で処理してくれる定番のアプリです。 「ダウンロードフォルダを片付ける」用途で有名です。

写真の整理にも使えますが、EXIF の撮影日を主役にした道具ではありません。 撮影日での振り分けをやろうとすると、結局 exiftool を呼ぶルールを自分で組むことになります。 そしてコピーが壊れていないかの確認はしません。

方法4: 専用のアプリを使う

FolioSort(海外製)

撮影日でも機種別でも分けられて、コピー後のハッシュ照合まで持っています。 無料版があり、Pro が €19.99 の買い切りです。 ここで挙げるなかでは、機能がいちばん近いアプリです。

ただし日本語がありません(英語・スペイン語・フランス語)。 macOS 14 以降が必要です。

カメラ取り込み(このサイトのアプリ)

上の方法を全部やったうえで、自分が毎回困っていたところを埋めるために作りました。 カードを挿すと自動で始まり、撮影日 × 機種 × 種類で分けて、 コピーしたあと1枚ずつ読み直して照合します。

ひとつだけ、他にない部分があります。その日の名前を聞かれます。

~/Pictures/2026-08-15_花火大会/X-E5/RAF/DSCF1234.RAF

日付だけのフォルダは、並べ替えはできますが探せません。 半年後に「あの花火の写真どこだっけ」と思ったとき、日付を思い出す必要があります。 名前が付いていれば、その手間がありません。

macOS 13 以降・日本語・いまは無料のテスト版です。動作を確認できているカメラは まだ3機種だけなので、正直に書いておきます。

カメラ取り込みについて 導入の手順

どれを選ぶか

一度だけ、溜まった写真を整理したい → 方法1のコマンド。インストール以外に何も要りません
写真.app の中だけで完結している → そのままで足ります。フォルダに出す必要がありません
日付別フォルダになれば、取り込み日でもかまわない → 標準のイメージキャプチャ(オートインポータ)で足ります
毎回やる。コマンドは自分で書ける → 方法2(Automator + launchd)か Hazel
毎回やる。手間をかけたくない → 方法4の専用アプリ
仕事の写真で、壊れていたら困る → コピー後に照合するもの(FolioSort / カメラ取り込み)。コマンドと Hazel は照合しません

コマンドでは埋まらない5つのこと

方法1のコマンドは本当に使えます。そのうえで、毎回のカード取り込みに使うと 足りなくなるところを、正直に書いておきます。

  1. コピーが壊れても分かりません。 カードの読み取りエラーは実在する故障モードで、コピー自体はエラーを出さずに終わることがあります。 読み直して照合しないかぎり「取り込んだ」とは言えません
  2. 動画の日付がずれます。 多くのカメラは動画の撮影日時を UTC で書きます。そのまま使うと、 夜に撮った動画が翌日のフォルダに入ります
  3. RAW と JPEG が同じフォルダに混ざります。 分けるには拡張子ごとの条件を足すことになります
  4. プロキシ動画やサムネイルも一緒に入ります。 DJI の .LRF、GoPro の .LRV、ソニーの SUB/ などです
  5. 2回目に挿したとき、同じものをまたコピーします。 重複を中身で照合して飛ばす仕組みは、コマンドにはありません

これらが要らない用途なら、方法1で十分です。 要るようになったときに、この記事に戻ってきてください。

← カメラ取り込みについて