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.
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.
| Method | Best for | Handles regex? | Reusable? | Learning curve |
|---|
| Finder - Replace Text | Removing or swapping one string across a batch | No | No | None |
| Finder - Add Text | Prefix or suffix on already-good names | No | No | None |
| Finder - Format | Clean rebuild with a counter | No | No | Low |
| Terminal | Regex, conditionals, 1000+ files | Yes | Script file | Medium |
| Automator | The same rename, every week, one click | Limited | Yes (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.
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.