0

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.?

piyushmandovra
  • 199
  • 2
  • 2
  • 8

3 Answers3

8

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.

Carl H
  • 6,181
  • 6
  • 27
  • 41
  • 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
3

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

short command

for f in *; do mv "$f" "$f.mp3"; done
A.B.
  • 90,397
3

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.

terdon
  • 100,812
Tommy L
  • 131
  • 1