Bulk & Automation

How to Bulk Rename Files on Mac

macOS has had a proper bulk-rename tool built into Finder since 2015, but Apple buries it and underexplains the one mode that does the real work. This is the full walkthrough: the three Finder rename modes (Replace Text, Add Text, and Format), where Finder gives up, and the two fallbacks (Terminal and Automator) to reach for when it does.

The Built-in Way: Finder's Rename X Items

Finder calls it Rename X Items, where X is the number of files selected. It opens from a right-click and then Rename X Items, or from the File menu and then Rename X Items. The dialog has three separate modes hidden behind a dropdown at the top: Replace Text (find-and-replace inside filenames), Add Text (prepend or append text), and Format (rebuild the name from scratch with a counter). They are not the same tool; each one is for a different job.

Method 1 - Replace Text: fix a batch that almost got it right

This is the mode for when the names are fine except for one thing, for example every file has _final stuck in the middle and you want it gone. Select the files (click the first, Shift-click the last, or press Cmd A), right-click and choose Rename X Items, then choose Replace Text from the top dropdown. In the Find field type the text to remove, such as _final, and leave Replace with empty to delete it or type a replacement. Click Rename.

Before and after: client_logo_final_v1.png becomes client_logo_v1.png, and client_hero_final_v2.png becomes client_hero_v2.png.

The catch: Replace Text is case-sensitive and literal, so Final will not match final, and there is no regex and no wildcards. For something like "remove everything after the second underscore" you need Format or Terminal instead.

Method 2 - Add Text: stamp a batch with a prefix or suffix

Add Text inserts fixed text before or after the existing filename. Select the files, open Rename X Items, choose Add Text, type the text (for example shoot-), choose before name or after name, and click Rename.

Before and after: DSC0123.jpg becomes shoot-DSC0123.jpg.

It is the simplest mode and the one that breaks the least; use it when the existing names are already unique and you only want to decorate them. It will not save you from a collision, because it prepends the same string to both duplicates.

Method 3 - Format: the counter mode Apple underexplains

Format rebuilds the filename from scratch and adds a running counter, which is what turns a pile of inconsistent names into one clean pattern (deliverable-01, deliverable-02, and so on). Select the files, open Rename X Items, choose Format, pick a Name Format (Name and Index, Name and Counter, or Name and Date), type the base name in Custom Format (for example deliverable), set the starting number, and click Rename.

Before and after: "final FINAL logo.png", "logo copy 2.png", and "LOGO-export (3).png" become deliverable-1.png, deliverable-2.png, and deliverable-3.png.

Two things nobody explains. First, Format keeps the file extension automatically, so do not type .png yourself or you get deliverable.png-1.png. Second, the counter width is fixed by the starting number: start at 1 and you get 1 through 9 then 10 with no zero-padding; start at 01 and Finder zero-pads the whole batch to 01 through 40. For batches over 9 files, start at 01 so they sort correctly (01, 02, and up to 10, instead of 1, 10, 11, 2).

Where Finder Gives Up

Finder's dialog handles about 80% of batches. It is worth naming the limits so you stop fighting it. There is no conditional logic (you cannot say "if the filename contains IMG_ then..."). There is no regex (no "remove everything after the second dash", no lowercasing, no spaces-to-underscores). There is no reading the file's content (Finder sees filenames only, never what is inside them). And there is no way to save a rename as a reusable workflow. For the first three, the answer is Terminal. For the last, the answer is Automator or a third-party tool.

Method 4 - Terminal Fallback

For regex, conditional logic, or thousands of files, the macOS Terminal does it in one line. Open Terminal, cd into the folder, and run the one that fits. To lowercase every filename, run for f in *; do mv "$f" "$(echo "$f" | tr '[:upper:]' '[:lower:]')"; done. To replace spaces with underscores, run for f in *; do mv "$f" "${f// /_}"; done, which turns Client Brief Final.pdf into Client_Brief_Final.pdf.

Two safety habits matter here. Always echo before mv: run the loop with echo in front of the mv first to preview what would happen, read it, then remove echo and run it for real. And always quote your variables: use "$f", not $f, or a filename with a space breaks into two arguments. Terminal is powerful and unforgiving, with no undo, so preview with echo and copy the folder as a backup first.

Method 5 - Automator: turn a rename into a one-click workflow

For the same rename every week, Automator builds it once and then runs it forever as a Quick Action in Finder's right-click menu. Open Automator, choose New document and then Quick Action, and set "Workflow receives current" to files or folders in Finder. Drag Rename Finder Items into the workflow, configure it like Finder's dialog, and save and name it (for example Prefix with Date). After that, select files in Finder, right-click, choose Quick Actions, and pick Prefix with Date.

Automator is the middle ground: more repeatable than the one-shot dialog, less scary than raw Terminal. Each Rename Finder Items step does one transformation, so stack two steps for "replace text AND add a counter", and remember that the order of the steps matters.

Choosing the Right Method

Here is how the five methods compare across the things that actually decide which one to use.

MethodBest forHandles regex?Reusable?Learning curve
Finder - Replace TextRemoving or swapping one string across a batchNoNoNone
Finder - Add TextPrefix or suffix on already-good namesNoNoNone
Finder - FormatClean rebuild with a counterNoNoLow
TerminalRegex, conditionals, 1000+ filesYesScript fileMedium
AutomatorThe same rename, every week, one clickLimitedYes (Quick Action)Low to medium

Try Finder first. If the rename fits one of the three modes and you are doing it once, Finder wins in under a minute. Reach for Terminal when you need regex or have a huge batch, and reach for Automator when it is a rename you will repeat.

When a Third-Party Tool Is Actually Worth It

For renaming files by filename pattern, the built-in tools are enough. A third-party renamer earns its keep only when you need something Finder and Terminal fundamentally cannot do: rename files based on what is inside them.

The scenario is a folder of 300 scanned PDFs (invoices, contracts, receipts) all named scan001.pdf through scan300.pdf, that you need named after the vendor, invoice number, and date. Finder sees scan001.pdf; it cannot see "Invoice #4471, Acme Corp, due 2026-03-15" on the first page. Unlike rule-based renamers that only see filenames, renamer.ai reads the actual document content (OCR + AI vision) to generate descriptive names automatically. So renamer.ai proposes Acme-Invoice-4471-2026-03-15.pdf instead of scan001.pdf, and for photos the vision model describes the content.

Finder and Terminal rename by pattern; renamer.ai renames by content. If your batch is "rename all the DSC_ files to shoot-", use Finder. If it is "these 300 scans need to be named after what they actually are", that is the content-reading case, and it is the one situation where dedicated bulk rename software does something the native tools cannot.

Scanned Documents and OCR

A scanner outputs scan001.pdf where the "text" is actually a picture of a page. Plain filename tools (Finder, Terminal, and most renamers) cannot do anything with that, because there is no text layer to read. OCR (optical character recognition) turns the image of a page back into text a tool can use; renamer.ai runs OCR as part of reading, so a scanned invoice gets named after its content the same way a born-digital one does. If your batch is scans, that is the capability that matters, and no filename-based tool will help.

Finder First, Then the Fallbacks

The honest summary: Finder's Rename X Items covers the large majority of Mac bulk renames, and it does it faster than installing anything. Learn the three modes (Replace Text to fix a batch, Add Text to decorate one, Format to rebuild with a counter), keep Terminal in your pocket for regex and huge batches, and build an Automator Quick Action for the rename you run every week.

The one place the native tools genuinely stop is content. If your files need to be named after what is inside them, and especially if they are scans with no text layer, that is the content-reading job the bulk rename software route exists to solve. For everything else, Finder already has you covered.

Frequently Asked Questions

Can I undo a bulk rename in Finder?

Yes. Immediately after, press Cmd Z (Edit and then Undo) and it reverts the whole batch in one step. But Cmd Z only works for the most recent action and only while Finder stays open; if you close the window or do something else in between, the undo is gone. For anything risky, duplicate the folder first.

Does Finder's Rename change the file content or quality?

No. Rename only touches the filename. The file itself (image data, PDF contents, everything) is byte-for-byte identical; nothing is re-encoded or recompressed.

How do I add sequential numbers when renaming on Mac?

Use Finder's Format mode: choose Name and Counter, type a base name, and set the starting number. Start at 01 (not 1) for batches over nine files so they zero-pad and sort correctly.

Why does Replace Text not find my text?

Replace Text is case-sensitive and literal, with no wildcards or regex. Final will not match final, and you cannot match "everything after the second underscore". Use Format to rebuild the name, or Terminal for regex.

How do I bulk rename files on Mac without any software?

Finder's built-in Rename X Items needs nothing extra and covers replace, prefix/suffix, and counter renames. For regex or conditional renames, the built-in Terminal handles it with a shell loop, also with no install.