Macでファイル名を一括変更する4つの実用的な方法

Macでファイル名を一括変更する4つの実用的な方法

著者 Josh Callahan17 分で読めます

カメラから取り込んだ写真の名前は、相変わらず IMG_2041.JPG のまま。その隣のクライアント用フォルダでは、同じプロジェクトコードのスペルミスがあちこちに残っている。わかりやすいファイル名にしたい。でも、写真の順番をぐちゃぐちゃにしたり、気づいたら拡張子まで変わっていた、なんてことは避けたいですよね。

この2つは、実は別々の作業です。Macでファイル名を一括変更するときは、選択したファイルの数ではなく、適用したいルールで方法を選ぶのがうまくいくコツです。一度きりの変更ならFinder、取り込みのたびに繰り返すならワークフローを保存、パターンが必要なときだけターミナル。そして、実行する前に「結果をどう確認し、どう元に戻すか」を決めておきましょう。

一括リネームの方法を選ぶ ​

まずは、やりたい変更を普通の日本語で書き出してみましょう。「ACNE を ACME に置き換える」ならFinderの出番です。「納品日と新しい連番をすべての書き出しファイルに付ける」なら自動化向き。「SCAN_ はファイル名の先頭にあるときだけ消す」ならパターン処理の仕事です。

フォルダの中身がごちゃごちゃしているからといって、すぐスクリプトを組む必要はありません。大量のファイルを選んでいても、ルールが単純なら、それは単純なリネームです。逆に、少数のファイルでも、同じ文字列が違う位置に出てくるなら、慎重なパターンマッチが必要になることもあります。

Macの一括リネーム、どの方法を使う?

方法向いているケース変更できること元に戻す方法
Finderの名前変更目に見えている選択範囲を一度だけ変更するテキストの置き換え、テキストの追加、名前+インデックス/カウンタ/日付次の操作をする前に、すぐCommand-Z
Automatorのクイックアクション取り込みや納品のたびに同じルールを適用する連番、ゼロ埋めした数字、日付の接頭辞を保存したフローで例のファイル名が正しくなるまでコピーでテストする
ショートカット最近のmacOSで、小さな繰り返し操作を行う追加や置き換えのステップ、またはテスト済みのシェルアクションをメニューから実行まず複製したフォルダでテストする
ターミナルのmvループFinderでは表現できないパターン、接頭辞、日付の順序ループや置換が記述した内容そのままmvを実行する前に、変更後の名前を表示して確認する
専用のリネームアプリ複数ステップのレシピや、ファイル名にカメラの撮影日を使いたいときプレビューグリッドや、標準機能を超えた連結ルールアプリのプレビュー、取り消し対応、最新の価格は開発元サイトで確認する

条件に合う一番小さなツールを選ぶ ​

Finderは、対象のアイテムをすでに選択しているなら最初の選択肢です。「テキストを置き換える」「テキストを追加」「フォーマット」の各モードで、置換、接頭辞・接尾辞の追加、名前+インデックス/カウンタ/日付のカスタム名がカバーできます。クライアントコードの打ち間違いを直すだけなら、何かをインストールする理由はありません。

Automatorは、同じルールを定期的に組み直しているなら、セットアップする価値があります。たとえば、毎週の写真の取り込みで、共通のベース名、連番、取り込み日がいつも必要だとしましょう。毎回設定を思い出すより、その組み合わせを保存しておくほうがずっとラクです。

ショートカットは、Finderやメニューバーからすぐ呼び出したい小さな操作に向いています。Automatorとショートカットはどちらもくり返しの操作を保存する手段で、組み合わせなければいけないものではありません。

専用アプリが役立つのはどんなとき? ​

専用のリネームアプリは、複数の変換を連結しながら、提案される新しいファイル名をひとつずつ確認したいときに向いています。カメラの撮影日も、アプリを検討する理由のひとつです。ファイルを取り込んだ日ではなく、EXIFから名前を作りたい場合に特に当てはまります。

最新の機能や価格は、開発元のページで確認してください。どのリネームアプリでも、カメラのメタデータ、サイドカーファイル、名前の衝突、取り消しを同じように扱えると思い込むのは禁物です。

選ぶ前に、変更前と変更後の例をひとつ書き出しておきましょう。たとえば SCAN_contract_SCAN_final.pdf は contract_SCAN_final.pdf になってほしいのであって、contract_final.pdf ではありません。この違いは、フォルダの大きさよりずっと多くのことを教えてくれます。

ひとつのルートを選んで、テストしましょう。すでに選択してあるファイルのタイプミスなら、Finderで終わりです。定期的な納品なら、ワークフローを保存。位置に左右される変更なら、読みやすいターミナルのループか、同等のルールを持つ視覚的なリネームアプリを使います。

Finderでファイル名を変更する ​

Finderなら、追加のソフトなしで一般的な一括リネームができます。Appleのガイド「Macでファイル、フォルダ、ディスクの名前を変更する」には、複数のアイテムを選択し、選択範囲をControlキーを押しながらクリックして、「テキストを置き換える」「テキストを追加」「フォーマット」を使う手順が載っています。

旅行のカメラデータを整理する場面を考えてみましょう。カメラの識別番号は残して Lisbon- を付ける、IMG_ を Trip- に置き換える、元の名前をすべて捨てて新しい連番にする、といった選択肢があります。どれを選ぶかで残る情報が違うので、ダイアログを開く前に、どんな結果にしたいか決めておきましょう。

選択からリネームまでの基本の流れはこんな感じです。

MacのFinderでファイル名を一括変更する手順を3ステップで示した説明図。

選択範囲を決めて、ルールを設定する ​

  1. 作業するフォルダをFinderで開きます。 役に立つカメラの識別番号を置き換えるなら、複製したフォルダで作業しましょう。ファイル名を確認しやすいなら、リスト表示に切り替えます。

  2. 対象のファイルを選択します。Shiftキーを押しながらクリックで範囲選択、Commandキーを押しながらクリックで、間を含めずに飛び飛びのアイテムを選択できます。関係のない書き出しファイルやフォルダがハイライトされていないか確認しましょう。

  3. 選択したアイテムをControlキーを押しながらクリックして、「名前を変更」を選びます。 選択は保ったままにします。ルールは、ポインタの下にあるアイテムだけでなく、選択したすべてのアイテムに適用されます。

  4. 目指す結果に合ったモードを選びます。旅行写真なら、**「テキストを置き換える」で IMG_ を Trip_ にするか、「テキストを追加」**でカメラ名を残したまま Lisbon- を先頭に付けます。

  5. まったく新しい命名規則にしたいときは、**「フォーマット」を選びます。「名前とインデックス」「名前とカウンタ」「名前と日付」のどれかを選びましょう。共通の名前の部分(Lisbon-Trip- など)を「カスタムフォーマット」**に入れ、生成される部分をその前に付けるか後ろに付けるかを選びます。

  6. 番号付きのフォーマットを使うなら、**「開始番号」を設定します。Finderに表示される例を、区切り文字、生成される桁数、拡張子まで丁寧に読みましょう。例が意図した構造と合っているときだけ、「名前を変更」**をクリックします。

共通のテキストは、開始番号のフィールドではなく、カスタムフォーマットに入れます。開始番号を入力しただけでは、わかりやすいファイル名にはなりません。ハイフンやアンダースコアを使いたいなら、カスタムの名前の部分に含めておきましょう。

カメラの識別番号を残すか、意図的に置き換えるか ​

「テキストを置き換える」では、新しい連番は作られません。IMG_ を Trip_ に置き換えても元のカメラ番号は残るので、IMG_2041.JPG は Trip_2041.JPG になります。編集した画像を、カメラから取り込んだ元の写真と突き合わせる可能性があるなら、これは便利です。

「テキストを追加」なら、さらに多くの情報が残ります。Lisbon- を先頭に付けると Lisbon-IMG_2041.JPG になり、長くはなりますが、元をたどりやすくなります。

「フォーマット」では、元の名前の部分が、選んだ命名規則に置き換わります。 カメラの識別番号ではなく、納品用の連番にしたいときに使いましょう。カウンタの桁数はFinderの例で実際に確認してください。「名前とインデックス」が特定のゼロ埋めになると決めつけてはいけません。納品の仕様で桁数が厳密に決まっているなら、ゼロ埋めを明示的に指定できるワークフローを使いましょう。

Finderのこのコマンドは、写真だけのものではありません。選択したプロジェクトフォルダや書類にも同じ方法が使えますし、ディスクの名前もAppleのリネーム手順で説明されています。こうした作業をもっとスムーズにする選択やナビゲーションのコツは、Macのコツ(Finder編)も参考にしてください。

リネームを適用したら、最初と最後のアイテム、その間のいくつかの名前を確認しましょう。結果がおかしければ、ほかのFinder操作をする前に、すぐにCommand-Zを押します。先に修正のリネームをしてしまうと、元のバッチを簡単に復元できなくなるかもしれません。

インポートのたびに同じ設定をくり返すなら、ダイアログを毎回組み直すのではなく、操作を保存しましょう。

Automatorやショートカットでくり返し作業を自動化する ​

入力は変わってもルールは変わらないなら、保存したリネームが役立ちます。毎週の写真の取り込みなら、共通の名前の部分と取り込み日の接頭辞が必要かもしれませんし、研究データの受け取りなら、後続の処理のために一貫した連番が必要かもしれません。

Automatorを使うと、Finderのアクションを組み合わせてその操作を作れます。ワークフローの考え方はこちらの図のとおりです。

MacのAutomatorのワークフローでファイル名の一括変更を自動化する方法を手描き風に示したイラスト。

日付と連番のクイックアクションを保存する ​

Appleは写真の自動化のウォークスルーで、3桁の番号とゼロ埋めによる連番リネームに続けて、ダッシュ付きで現在の日付を追加する方法を紹介しています。バラバラなリネーム手順の寄せ集めではなく、アレンジできる具体的なレシピになっています。

  1. Automatorを開いて、クイックアクションを作成します。 ワークフローがFinderのファイルまたはフォルダを受け取るよう設定します。これで、選択したFinderのアイテムがワークフローの入力になります。

  2. **「Finderの項目の名前を変更」**を検索して、ワークフローにドラッグします。Automatorが「Finder項目をコピー」の追加を提案してきたら、複製に対して処理したい場合は承認しましょう。コピーの保存先は明示的に指定してください。

  3. リネームのアクションを**「連番にする」**に設定します。新しいベース名を入力し、区切り文字を選び、ゼロ埋めの桁数コントロールを有効にします。このレシピでは、Appleの例と同じ桁数に合わせましょう。

  4. 連番のステップのあとに、「Finderの項目の名前を変更」をもうひとつ追加します。**「日付または時刻を追加」**を選び、現在の日付を使って、名前の前に置き、ダッシュを区切り文字に選びます。お使いの地域のデフォルトに頼らず、表示される日付のフォーマットを確認してください。

  5. クイックアクションを「日付と連番」という名前で保存します。 Finderで小さな複製セットを選び、クイックアクションを開いて実行します。元の納品フォルダに使う前に、実際の出力を確認しましょう。

ゼロ埋めした連番なら、ファイル名を1文字ずつ比較するソフトでも順序がそろいます。Finderは数字を自然な順序で並べてくれることが多いものの、受け取る側のアップロードシステム、スクリプト、アーカイブビューアは、そうとは限りません。ファイル名は、自分のFinderウインドウでの見え方ではなく、行き先に合わせて作りましょう。

毎週の写真の取り込みでは、日付の意味をはっきり書いておきます。ここでの現在の日付は、カメラの撮影日ではなく処理した日です。研究データなら、新しい連番を振っても、スプレッドシートや解析スクリプトで使っている識別子が壊れないか確認してください。

ショートカットをコンパクトな起動ボタンとして使う ​

新しいショートカットでは、詳細で**「クイックアクションとして使用」**とFinderを有効にして、ファイルを入力として受け取るようにします。単純な変換には「各項目を繰り返す」と「ファイルの名前を変更」を使い、すでにテスト済みの命名ルールには「シェルスクリプトを実行」を使いましょう。シェルアクションを使うときは、引用符のないテキストからパスを組み立てるのではなく、選択したファイルを引数として渡します。

最初のバージョンは、範囲を絞っておきましょう。プロジェクトコードを追加するだけのショートカットは、リネームも移動も並べ替えも削除も一度にやってしまうものより、ずっと確認しやすいです。

ワークフローの設定を動画で見たいなら、こちらのウォークスルーをどうぞ。

Tech Todayの簡単なタスク自動化の手順は、自動化する前にくり返しの作業を見つけ出すための参考になります。リネームに確実な起動方法も必要なら、Mac自動化アプリのガイドも役立ちます。

最初のバッチの出力が命名規則と合うまでは、手を加えていない元のコピーを残しておきましょう。ワークフローが問題なく実行されても、間違った名前ができあがっていることはありえます。

ターミナルでパターンに沿ってリネームする ​

Finderの単純な置換では範囲が広すぎる場面があります。接頭辞だけを変えたいときです。SCAN_ がファイル名の先頭にも途中にも出てくるなら、先頭の1か所だけを消したいかもしれません。日付の並べ替えも、同じように正確さが求められます。

標準のmacOSには、汎用の rename コマンドはありません。確実に使える組み込みの方法は、zshのループの中で mv を使うことで、何かを移動する前に、表示だけのプレビューを挟みます。

接頭辞の変更をプレビューする ​

ターミナルを開き、cd と入力して(うしろにスペースを入れます)、Finderから複製した作業フォルダをウインドウにドラッグし、Returnキーを押します。先に進む前に、コピーの中にいることを確認してください。以下の例は、改行を含まない普通のファイル名を前提にしています。

プロジェクトの接頭辞を付ける場合のプレビューです。

for f in *.jpg; do
  echo "$f -> Project_$f"
done

変更後の名前をすべて読んで確認しましょう。問題なければ、実際のリネームはこうなります。

for f in *.jpg; do mv "$f" "Project_$f"; done

小文字のパターンは .jpg にマッチし、大文字小文字の違うすべての拡張子にはマッチしません。マッチの範囲を狭くしておくと、意図したより広い範囲を処理してしまうのを防げます。

SCAN_ を先頭からだけ取り除くなら、パラメータ展開をプレビューします。

for f in SCAN_*; do
  new="${f#SCAN_}"
  echo "$f -> $new"
done

${f#SCAN_} は、先頭にマッチする部分だけを取り除くので、あとに出てくる SCAN_ はそのまま残ります。変更後の名前を確認したら、プレビューの行を mv -i "$f" "$new" に置き換えます。この対話フラグがあると、すでに存在するファイル名に上書きする前に確認してくれます。

ループを止めたくないからといって、上書きを承認してはいけません。名前の衝突が起きたということは、命名ルールをもう一度見直すべきというサインです。

読みやすい正規表現で日付の並びを入れ替える ​

03-12-2024-meeting.txt というメモが日-月-年の順になっていて、2024-12-03-meeting.txt にしたいとします。変更はこのようにプレビューできます。

for f in *.txt; do
  new=$(echo "$f" | sed -E 's/^([0-9]{2})-([0-9]{2})-([0-9]{4})/\3-\2-\1/')
  echo "$f -> $new"
done

キャプチャグループは、日、月、年を表します。置換後は、ファイル名の残りの部分を保ったまま、年が先頭に来ます。sed -E は拡張正規表現を有効にするので、繰り返しの波括弧に余分なバックスラッシュは要りません。

これが確認するのは日付の形だけで、カレンダー上で有効な日付かどうかまではチェックしません。適用する前に、元のデータが本当に日-月-年の順か確認してください。

すべての行を確認したら、同じ置換を、ガード付きの移動で使います。

for f in *.txt; do
  new=$(echo "$f" | sed -E 's/^([0-9]{2})-([0-9]{2})-([0-9]{4})/\3-\2-\1/')
  if [[ "$f" != "$new" ]]; then
    mv -i "$f" "$new"
  fi
done

変数を引用符で囲んでおけば、スペースも保たれます。比較の部分で、変更のない名前をスキップするので、ファイルを自分自身の上に移動しようとすることもありません。

Homebrew経由でサードパーティの rename を入れれば、正規表現の操作を短く書けますが、実装ごとに構文が違います。読みやすいループで十分こなせる作業なら、インストールは見送りましょう。

ターミナルでのリネームには、Finderのような取り消し機能はありません。元のフォルダは残しておき、どのファイルが選ばれて、変更後の名前がそれぞれどうなるのか、自分の言葉で説明できないコマンドは実行しないでください。

並び順・メタデータ・取り消しを守る ​

ゼロ埋めしていない数字は、辞書順で並べ替えるツールでは、思わぬ順序になることがあります。Finderの自然な数字の並べ替えが弱点を隠してくれていて、フォルダをアップロードしたり、別のアプリを使う人に渡したりして、はじめて気づくこともあります。ファイル名は、見た目のラベルではなく、どこでも通用する並び順のルールだと考えましょう。

番号を付ける前に、その連番が何を表すのかを決めます。アルファベット順のカメラ順、ファイルの作成順、実際の撮影順は、同じではありません。複数のカメラの写真が混ざったフォルダなら、日付の列に見えているものが、それぞれの写真を撮った瞬間を表していると思い込まず、提案される連番を確認しましょう。

実行前チェックをする ​

実際のバッチに触れる前に、複製したフォルダでこの表と照らし合わせてください。

リネームのよくある失敗と対処法

失敗起きること対処法
ゼロ埋めしていない数字辞書順の並べ替えで、1、10、11、2の順になる数字を001、またはもっと広い桁数にそろえる
置換が拡張子にまで及ぶファイルが違うアプリで開く、または種類を失うプレビューが元の拡張子で終わっているか確認する
プレビューなしフォルダ全体が一度に間違う先にコピーで、Finderの例の行かechoループを確認する
大文字小文字だけの変更mvが「同じファイルです」と言う一時的な名前に変更してから、最終的な大文字小文字にする
日付が日から始まる日付が時系列ではなく、日ごとにグループ化される年を先頭にして YYYY-MM-DD にする
ファイルが開いたままアプリが古い名前を作り直すそれらのアプリを閉じてからリネームする

拡張子は、別にひと目確認しておきましょう。jpg を狙った広い範囲の置換が .jpg まで変えてしまうこともありますし、名前全体を組み立て直すスクリプトが、拡張子をうっかり落とすこともあります。拡張子の名前を変えても、ファイルの中身が変換されるわけではありません。

大文字小文字だけの変更は、一般的な、大文字小文字を区別しないMacのボリュームでは注意が必要です。シェルでのリネームが、元と先を同じファイルだと報告してきたら、いったん重複しない一時的な名前を経由して移動します。その一時的な名前が、すでに存在していないかも確認してください。

ファイル名とファイルの中身を分けて考える ​

通常のリネームで変わるのはディレクトリのエントリであり、ファイルの中のバイトは変わりません。EXIFの撮影日、書類のテキスト、リネームしたフォルダの中にあるファイルの名前は、書き換わりません。ただし、すべてのファイルシステム、クラウドサービス、付随するワークフローが、あらゆるタイムスタンプをそのまま残すとまでは保証できません。

まず、編集用のアプリでファイルを閉じておきましょう。開いているファイルを使い続けられるアプリもあれば、古い名前で別のコピーを保存したり、リンクされたアセットを見失ったりするアプリもあります。メディアのカタログ、デザインの書類、コードのプロジェクトは、外部でリネームしたあと、リンクの張り直しが必要になることがあります。

命名ルールを長く運用したいなら、デジタルファイル整理のガイドが、読みやすい名前と、維持できるフォルダ構造をつなぐ助けになります。命名ルールをどれだけ整えても、プロジェクトの中で壊れた参照までは直せません。

元に戻せるかどうかは、方法によって違います。 Finderで間違えたバッチなら、Finderの直後の取り消しを使います。自動化やターミナルの場合は、Command-Zで元に戻せると思い込まず、手を加えていない元のファイルを頼りにしてください。シェルでのmvは、古いファイル名をゴミ箱に送ってはくれません。

コピーでプレビュー、数字はゼロ埋め、拡張子には触れない。そのうえで、本番のセットをリネームしましょう。


ファイル名がそろったら、フォルダの色とアイコンで、Finderでのプロジェクトの見分けをもっと楽にしましょう。Tintdなら、複数のフォルダをワンアクションでスタイル設定できます。フォルダ監視(Folder Watcher)を使えば、新しいフォルダにも、名前に応じて同じ色とアイコンを自動で付けられます。

Josh Callahan

執筆者

Josh Callahan

コピーライター

この記事をシェア

フォルダーを美しくする準備はできていますか?

数回クリックするだけでフォルダーアイコンに色を付けられます。

Mac 用をダウンロード