I have a folder with multiple files in it, and I want to append .mp3 extension at end of each file. is there any way to rename all these files with one command.?

  • 2
    Do the files already have an extenson? – Carl H Mar 31 '15 at 10:45
  • @carl no file doesn't have any extension. – piyushmandovra Mar 31 '15 at 10:53
  • ya dude but i don't have much experience with command line – piyushmandovra Mar 31 '15 at 11:09
  • 1
    ?? Your question is asking for a command line solution. – Jacob Vlijm Mar 31 '15 at 11:11
  • 1
    @JacobVlijm yes, but I post above comment because they say that my question is duplicate of some question. – piyushmandovra Mar 31 '15 at 11:15

Assuming the files don't already have any extension at all, then run this from the directory containing the files :-

for file in * ; do mv "$file" "$file".mp3; done 

If you want to be extra safe, do this instead :-

for file in * ; do cp "$file" "$file".mp3; done 

This will make copies of the files and add .mp3, instead of renaming them. You can always delete the originals afterwards.

Or if you want a graphical interface for mass renaming of files, then have a look at PyRenamer in the Software Centre.

| improve this answer | |
  • is there any way to just rename instead of creating duplicates.? and out of curiosity is it shell scripting... ? – piyushmandovra Mar 31 '15 at 10:56
  • 1
    @piyushmandovra Yes, that's what the first part of my answer does - for file in * ; do mv "$file" "$file".mp3; done will rename every file to file.mp3. – Carl H Mar 31 '15 at 10:59

and I want to append .mp3 extension at end of each file

short command

for f in *; do mv "$f" "$f.mp3"; done
| improve this answer | |
  • 1
    You beat Carl by a minute, but he got a better score... ;-) – Fabby Aug 10 '15 at 15:12

Use the command rename. It allows perl regexpes. E.g.,

rename 's/(.*)/$1.mp3/' *

Will add ".mp3" to the end of any file or directory name in the directory.

| improve this answer | |
  • 1
    Is capturing and backsubstitution really necessary here? what about just s/$/.mp3/? – steeldriver Mar 31 '15 at 11:23

Not the answer you're looking for? Browse other questions tagged or ask your own question.