I have about 140GB of music which I have ripped from my CD collection or downloaded.  Since I was moving files around anyhow and eliminating my server, I decided I should reorganize my music library a little.  It contains files in several formats, with many duplicates.  I’m not finished, but I did make significant progress using the following techniques (some of which would work for any large collection of files of any type).

First, I decided that I would try to store everything in directories according to <Artist>, then <Album>.  I used to think that it didn’t matter how the files were organized because jukebox programs (like Rhythmbox, my usual choice) use tags to sort things out anyhow.  My son puts the <Artist> directories in <Genre> directories to help manage them.  I find that too arbitrary (plus it is a daunting task requiring even more hand-sorting).  I would’ve kept the <Artist> directories all together, but there are simply too many to be manageable, so I decided to put them in alphabetical ranges (<A-F>, <G-M>, etc.).

Secondly, I decided that I would try to name the files according to “<Artist> – <Title>.<extension>” format.  That doesn’t matter for the files which are already sorted into directories, but it was necessary for all the unsorted files named things like “Track 05.mp3″.

Tools which I found useful:

EasyTAG – Tag editor for MP3, Ogg Vorbis, FLAC, MusePack and Monkey’s Audio files, …

This program is not extremely friendly, but it bridges the gap between filenames and tags.  The tags can be used to create new filenames.  Beware that this can be a fairly slow process.  Some notes about Easytag:

  • you must navigate to the folder where your files are, but every time you move from one folder to the next in the program, it prompts you to save changes even if you haven’t made any;
  • be careful to select all of the files you want to modify in the middle window before proceeding;
  • select “Rename Files and Directory” from the “Scanner” menu.  Select the naming pattern you want from the drop down and click the greenish scan button.
  • note that the changes don’t actually happen until you navigate away from the current directory and confirm that you want to make the changes;
  • the file renaming works quite reliably, but takes a long time if you have many files.

Easytag has lots of other features, but I haven’t tried them yet.

Bulk Rename Utility

This is a great utility for renaming many files at once and previewing the results before you commit the changes.  Unfortunately, it doesn’t seem to work on directory names (though it does work on filenames across directories).

The rename command

This is a bash utility for renaming files according to a regular expression pattern.  It does work on directories as well as files.  I love sed and this tool is a quick and easy way to use it’s power for renaming.  For example, to replace underscores in file or directory names with spaces:

$rename ‘s/_/ /g’ *