Rename / Change all File Extensions In a Folder and All Subfolders Recursively

KB ID 0000896 

Problem

I long time ago this site was hosted in my dining room, on a PC under my desk. I was running Windows and IIS. When I moved the site to a hosted Apache Linux server, I discovered that Linux is a little more rigid on its rules for file extensions. For example in Windows .JPG and .jpg is the same thing, but on a Linux box that’s NOT the case.

As I’ve used the Windows Snipping Tool a lot in the past my older images have a .JPG or .PNG extension, if your websites URL’s point to filename.jpg, then the URL will work in Windows but it WON’T work on a Linux web server (in my case Apache).

I fixed all the broken URL’s a long time ago, but the file extensions remained. This annoyed my Technical OCD, so this afternoon I decided to rename all the .JPG files to .jpg, and all the .PNG files to .png.

Note: I changed all the URL’s with a a simple file and replace in Dreamweaver.

Solution

To rename all the files in a folder simply use the ren or the rename command;

ren *.JPG *.jpg
Note: If you wanted to change all the extensions to something else that's fine too e.g.

ren *.htm *.txt

The limitation is you cannot do the same if you have folders and subfolders, you need to rename all the file extensions recursively. To do that use the following syntax.

forfiles /S /M *.JPG /C "cmd /c rename @file @fname.jpg"

Note: As Above, if you wanted to change all the extensions to something else that's fine too e.g.

forfiles /S /M *.JPG /C "cmd /c rename @file @fname.jpg"

So to fix my problem I only needed two commands.

REname all files in subfolders recursively

Related Articles, References, Credits, or External Links

NA

Author: Migrated

Share This Post On