Just recently I had a bunch of HTML files (files with a .html extension) that I wanted to rename to .cfm so that they would be interpreted by a CFML engine. To do this, I created a quick BASH loop and ran it directly in the command line:
for i in *.html; do mv $i `basename $i html`cfm; done
The semi-colons at the end of the first two lines will tell bash that you want to enter more commands, and BASH will typically respond by giving you a new line with a greater-then symbol in front of it. So, the output of your loop will look something like this:
myserver $ for i in *.html; > do mv $i `basename $i html`cfm; > done myserver $
The first line creates a “for” loop for every extension you want to change. In my case, since I wanted to change all files with the .html extension, I used .html. The second command creates a subshell (using the ` marks) and uses the basename program to remove the previous “html” entension. The subshell result is then passed back and used in our move command. For example, if you simply typed:
$ basename myfile.html html myfile.
So the subshell is returning the file name plus a dot. Once that happens the second move command turns into this:
$ do mv $i myfile.cfm
… which is what gets looped over as many times as we need it to in order to rename all the files!
Hope this helps!