
I have a lot of MP3 files on several devices (MacBook, SD cards for my Android devices, Windows devices) that all contain my entire music collection. Keeping them in sync is a chore and at times I've practically given up trying to do that. But Sometimes I just want to make sure songs that have been added to one place are added easily to another place or device. Sometimes I modify the metadata (song title, artist, etc) in these MP3 files. I certainly don't want to have to update that information in several places manually. Syncing mp3 files should be that difficult.
I recently found that rsync (running in the Mac OS terminal app) can do this job very well. There are Mac apps that you can buy that use rsync under the hood but this solution is free. It does require that you keep your folder structure and mp3 file names that exist on both your source and destination the same. This solution also allows you to copy files from the source that don't exist on the destination.
Below are the instructions for doing this kind of sync between storage on different devices. Note that the "-n" parameter is something you definitely want to use at first when you're trying to determine if it will really work. It causes the output to show you what would be transferred or copied instead of actually doing it.
- Open up the terminal app on your Mac
- Run rsync with the desired parameters. Here’s the exact command I used:
- rsync -nvru /Volumes/Macintosh\ HD/Users/marty/Music/All\ Other/ /Volumes/Untitled/music/All\ Other
Explanation of the parameters
-n dry-run which means you will see what “would” be updated without actually changing anything. Remove this when you’re ready to make the real changes
-v verbose, This can be omitted but it will give you extra information that might be useful
-u update, don’t copy the files from source to destination if destination files are newer
-r, recursive, sync files and directories recursively
Explanation of the source and destination directories
The two directories are listed in order of source and destination. The destination will be updated. The source remains unchanged. The forward slash at the end of the source directory name is necessary. In the example the source directory is:
/Volumes/Macintosh\ HD/Users/marty/Music/All\ Other/
The destination directory is:
/Volumes/Untitled/music/All\ Other
The backslashes are used when a directory name contains a space in it’s name.