mmv: Multiple file move for linux

Mass renaming should be a lot easier than I make it, and there is probably still an easier way than what I've found. However, recently when I was trying to rename a portion of my music collection I stumbled upon the program mmv. The next time I wanted to use it, I had to look up the man page again, so here is a small tutorial on mmv for myself.

MMV for mp3 File Renaming

I was going through my iAudio X5 renaming some of my older songs to fit with my file hierarchy. For example, I had Artist/Album/Artist - Song.mp3. Having both the folder and file labelled with the artist is needlessly redundant, and makes it hard to find the song I want on the small display of my mp3 player. All I wanted was to remove the "Artist - " from the beginning of each song.

So to perform this similar rename to all files in a folder, use the mass mover, mmv. This uses similar syntax as mv, with mmv "from" "to". It also makes extensive use of wildcards, specifically * (any string), ? (any character), [...] (specific characters), and ; (searches for */ any number of times, so you can look for something in a lower folder). I use * extensively, and look at the man page for help with the others.

In the "to" field, the wildcards are used in order, referenced by #1, #2, ect. So mmv "." "#2.#1" would reverse the extension and the name of a file (eg. readme.txt > txt.readme).

From the above comment, the syntax requiring quotes should be obvious. Around each filename quotes are needed or else mmv complains.


Skip to the end, to rename all the "Artist - Song.mp3" songs, the command needed is mmv "Artist - *" "#1". If you ever want to add back the artist, the reverse is mmv "*" "Artist - *"

Previous Post Next Post