Batch rename files on Mac without third-party apps
Here's the thing most people get wrong: you don't need a renaming app, AppleScript, or Automator to batch rename files on Mac. The Finder has had a built-in batch renamer since OS X Yosemite, and it covers the three operations you actually reach for — find-and-replace, prefix/suffix, and sequential numbering. No install, no subscription, no opening a single file.
This guide goes from the zero-effort Finder route to the Terminal one-liners for when you want real control.
The fast path: Finder's built-in renamer
Select the files you want to rename, Control-click (or right-click) the selection, then choose Rename. If you selected more than one item, Finder swaps the menu wording to Rename [N] Items… and opens a small dialog with a single dropdown. That dropdown is the whole tool — three modes:
| Mode | What it does | Use it for | | --- | --- | --- | | Replace Text | Finds a string in every name, swaps it for another | Killing junk like IMG_ or fixing a typo across a folder | | Add Text | Prepends or appends a fixed string | Tagging files with a project name or date | | Format | Rebuilds names with a custom base + a counter, index, or date | Turning a mess into Vacation 1, Vacation 2, … |
A few details that save you grief:
- Select first. The Rename option only does a batch when multiple items are selected. One item gives you a plain inline rename instead.
- It works on files, folders, and disks. Same dialog, same rules — though renaming a disk is a one-at-a-time inline edit, not part of the batch flow.
- Extensions stay put. Finder renames the name portion; it doesn't strip or rewrite
.jpg/.pdfon you.
Replace Text — strip or fix a common string
Pick Replace Text, type the text to find, type the replacement (leave it blank to just delete the string), and hit Rename. DSC_0142.jpg → Beach-0142.jpg by replacing DSC_ with Beach-. This is the one you'll use most: it's how you clean camera dumps, screenshot batches, and export folders in one shot.
Add Text — prefix or suffix everything
Pick Add Text, type your string, and choose before name or after name from the dropdown. Before-name is a prefix (2026-Q2 Report.pdf); after-name lands before the extension, so it reads as a real suffix and doesn't break the file type.
Format — renumber from scratch
Pick Format when the existing names are hopeless and you just want a clean sequence. You set a Name Format (Name and Index, Name and Counter, or Name and Date), a Custom Format base string, and where to start numbering. Result: Invoice 001, Invoice 002, and so on. Finder applies the order as shown in the window, so sort the folder the way you want them numbered before you open the dialog.
> Changed your mind? Press Command-Z right after — Finder undoes the whole batch as one step.
The power path: Terminal
The Finder dialog is great until you need conditional logic, recursion, or pattern matching it can't express. Then drop into Terminal. Always test on a copy first — mv doesn't have an undo.
Rename by substitution across a folder (zsh, the default Mac shell since Catalina):
```zsh
Replace "IMG_" with "Trip-" in every .jpg in the current folder
autoload -U zmv zmv 'IMG_(*).jpg' 'Trip-$1.jpg' ```
Add a sequential counter with a portable loop:
``zsh i=1 for f in *.png; do mv -n -- "$f" "$(printf 'shot-%03d.png' "$i")" ((i++)) done ``
The -n flag makes mv refuse to overwrite an existing file, your main safety net against silently clobbering a name collision. Want a dry run first? Swap mv for echo mv and read the output before committing.
Which one should you use?
- One folder, a clear find/replace or a clean renumber → Finder. It's faster than typing a command and gives you Command-Z.
- Recursion into subfolders, regex, or scripting it for later → Terminal. Worth the extra caution for anything you'll repeat.
If you came here mid-cleanup, you're probably also wrangling formats and exports — the same batch instinct applies to converting HEIC to JPG on a Mac and combining screenshots into a single PDF.