Say you would like to add the .png extension to all files.
rename 's/$/.png/' *
Source: http://askubuntu.com/questions/74011/how-to-add-an-extension-to-all-files-via-terminal
Now recursively add file extension to all files!
For example, you have a few directories and sub-directories containing files with no file extension. And you want to add .jpg to all the files contained within these directories.
This one will add extension to all files, with or without extension:
find . -type f -exec mv '{}' '{}'.jpg \;
Explanation: this recursively finds all files (-type f) starting from the current directory (.
) and applies the move command (mv) to each of them. Note also the quotes around {}, so that filenames with spaces (and even newlines…) are properly handled.
And this will find files without extension and add .jpg
find /path -type f -not -name "*.*" -exec mv "{}" "{}".jpg \;
-this skips files which already have an extension.
An alternative that’s believed to be more efficient in execution using the find | xargs :
find /path -type f -not -name "." -print0 | xargs -0 rename 's/(.)$/$1.jpg/'
Note that this requires the version of rename found in Debian-flavored distros (aka prename), rather than the traditional rename. It’s just a tiny perl script, though, so it would be easy enough to use the command above on any system.
Source: http://stackoverflow.com/questions/1108527/recursively-add-file-extension-to-all-files