How to Batch Change File Extensions on Mac

Changing file extensions in bulk is a common task when standardizing file collections. Converting .jpeg to .jpg, .htm to .html, or removing extensions entirely requires a tool that can modify the extension portion without touching the base filename. macOS provides Finder, Terminal, and third party tools for this purpose.

How Do You Batch Change Extensions in Finder?

Finder batch changes extensions through its Replace Text rename mode. Select all files that need the extension change, right click, choose Rename, switch to Replace Text, type the old extension in Find and the new extension in Replace With. Finder replaces the matching string across every selected filename.

Finder's Replace Text mode performs a literal string replacement across all selected filenames. This works reliably for extension changes when every file shares the same original extension. Select the files in a Finder window, right click to open the context menu, and choose Rename. Switch the mode dropdown to Replace Text. Type the current extension including the dot in the Find field and the desired extension in the Replace With field. Click Rename to execute the change.

The limitation of Finder's approach is that it performs a general string replacement. If the extension text appears elsewhere in the filename, Finder replaces that occurrence too. A file named htm_backup.htm would have both instances of "htm" replaced. Finder also cannot handle mixed extension changes in a single operation. You need separate passes for each extension type. For single file changes, see the single extension change guide.

How Do You Change Extensions with Terminal's Rename Command?

Terminal changes extensions in bulk using a for loop with parameter expansion. The command for f in *.jpeg; do mv "$f" "${f%.jpeg}.jpg"; done strips the .jpeg extension and appends .jpg. Terminal provides precise control and only modifies the extension portion through shell pattern matching.

Terminal's parameter expansion syntax targets the extension specifically. The${f%.jpeg} pattern removes the .jpeg suffix from the filename variable, and the script appends the new .jpg extension. This approach avoids the string replacement issue that Finder has because the pattern anchors to the end of the filename. You can also use the rename command if it is installed through Homebrew, which provides regex support for complex extension transformations.

Terminal commands run without a preview, so mistakes affect files immediately. Always test the command on a small set of files or use echo to preview the results before executing. Terminal also lacks built in undo for rename operations. A mistyped pattern can produce unexpected results across hundreds of files. For safer bulk operations, consider a tool with live preview such as Batchio. See the Find & Replace feature for regex powered extension changes.

How Does Batchio Batch Change File Extensions?

Batchio batch changes extensions through the Extension Handling rule. This rule isolates the extension from the base filename and provides options to replace, add, or remove extensions. The live preview shows every filename change before you commit the operation.

Batchio's Extension Handling rule separates the extension from the base name at the architectural level. When you select Replace Extension and type the new value, Batchiomodifies only the characters after the final dot. The base filename remains completely untouched regardless of whether the extension text appears in the name body. This solves the false match problem that affects Finder's Replace Text mode.

The rule supports three operations: replace the existing extension, add an extension to files that lack one, and remove extensions entirely. Combine the Extension Handling rule with other rules to perform complex workflows in a single pass. For example, stack it with a Find & Replace rule to clean up filenames while also standardizing extensions. Conflict detection warns you before two files end up with the same name. See the batch rename guide for the complete overview of Batchio's capabilities.

What Are the Most Common Extension Changes on Mac?

The most common extension changes include .jpeg to .jpg, .htm to .html, .tiff to .tif, and .mpeg to .mpg. These changes standardize file collections to use shorter or more widely recognized extensions. Web projects frequently require .htm to .html conversion for server compatibility.

Image workflows commonly involve .jpeg to .jpg conversion because both extensions represent the same JPEG format, but .jpg is the three character standard that ensures broader compatibility. Photography collections often contain a mix of both extensions depending on which camera or software created the files. Standardizing to .jpg simplifies file management and prevents duplicate detection issues.

Web development projects frequently need .htm to .html conversion. Some legacy systems and older Windows software generate .htm files, while modern web servers and frameworks expect .html. Video files use .mpeg and .mpg interchangeably, and audio files sometimes arrive as .jpeg when they should be .jpg. Consistent extensions prevent broken file associations and ensure that every file opens in the correct application. The suffix insertion guide covers adding text before the extension.

How Do You Remove Extensions from Multiple Files?

Terminal removes extensions using parameter expansion in a for loop. The command for f in *.txt; do mv "$f" "${f%.txt}"; done strips the .txt extension from every matching file. Batchio's Extension Handling rule provides a dedicated Remove Extension option that strips extensions with live preview and undo support.

Removing extensions is less common than changing them, but certain workflows require extensionless files. Some build systems, configuration files, and Unix tools expect files without extensions. Terminal's parameter expansion handles this cleanly by stripping the dot and extension characters from each filename. The glob pattern in the for loop targets only files with the specific extension you want to remove.

Batchio makes extension removal a one click operation. Select Remove Extension in the Extension Handling rule, and every loaded file shows its extensionless name in the live preview. This is especially useful when processing mixed file types where you want to strip all extensions regardless of type. The preview ensures no unexpected results before you commit. For related operations, explore the find and replace guide for text substitution workflows.

Frequently Asked Questions

Can you batch change file extensions in Finder without Terminal?
Finder can batch change file extensions using its Replace Text rename mode. Select the files, right click, choose Rename, switch to Replace Text, type the old extension in Find and the new extension in Replace With, then click Rename. This works for simple extension swaps where all files share the same original extension.
How do you change .jpeg to .jpg on Mac in bulk?
Select all .jpeg files in Finder, right click, choose Rename, select Replace Text, type .jpeg in the Find field and .jpg in the Replace With field, then click Rename. Terminal can also handle this with the rename command or a for loop using the mv command to swap the extension on every matching file.
Does batch changing extensions affect file contents?
Batch changing extensions does not modify file contents. The extension is part of the filename only. Changing .png to .jpg does not convert the image format. The file data remains identical. You need a dedicated converter to actually transform file formats between types.
How do you remove file extensions from multiple files on Mac?
Terminal can remove extensions using a for loop that strips the extension portion with parameter expansion. The command iterates through files and renames each one to the filename without the extension. Batchio provides a dedicated remove extension option in the Extension Handling rule that strips extensions from all loaded files with live preview.

Batch Change File Extensions with Confidence

Download Batchio free on the Mac App Store. All 9 rule types included. Pro upgrade $4.99.

Coming Soon to the Mac App Store
Marcel Iseli
Marcel Iseli

Creator of Batchio · Indie App Developer

LinkedIn ↗

Marcel Iseli is an indie app developer and the creator of Batchio. He builds native macOS utilities focused on productivity and file management, with a focus on lightweight, subscription-free tools.