Use the rsync command in Terminal to copy your ~/Music directory while preserving file structure, permissions, and timestamps. This method ensures that iTunes and Apple Music continue to recognize your library without needing re-imports or playlist reconstruction.
Why Use Terminal for Music Library Migration?
Moving your music library via Finder can sometimes lead to issues with metadata tracking, especially if you are migrating between drives or reinstalling macOS. The Finder relies on file system events that may not always update the internal database of iTunes or Apple Music correctly. By using a command-line tool like rsync, you gain precise control over how files are transferred.
This approach is particularly useful when dealing with large libraries where thousands of tracks need to be moved. It maintains the exact directory hierarchy, which is critical because many media players rely on relative paths to locate album art, lyrics, and other associated files. Additionally, rsync allows for incremental updates, meaning you can resume a transfer if it is interrupted, something the standard copy-paste operation does not support efficiently.
Preparation Before Copying
Before running any commands, ensure that no applications are accessing your music files. Close iTunes, Apple Music, Finder windows showing the music folder, and any background indexing services like Spotlight. If these applications hold locks on specific files, rsync may skip them or report errors, leading to an incomplete library transfer.
It is also advisable to verify the integrity of your current library. Open iTunes or Apple Music and check that all songs play correctly. If you have existing backups, such as Time Machine snapshots, create a new one before proceeding. This safety net allows you to restore the original state if something goes wrong during the migration process. You should also identify the destination path clearly. Whether you are moving to an external drive, a new internal partition, or another Mac, note the exact mount point or path (e.g., /Volumes/ExternalDrive/Music).
The Rsync Command Explained
The core tool for this task is rsync, which stands for "remote sync" but works excellently for local transfers. The basic syntax involves specifying the source, the destination, and various flags that dictate behavior. For copying the ~/Music directory, the recommended command is:
rsync -av --progress ~/Music/ /path/to/destination/
Let's break down the components of this command. The -a flag stands for "archive mode." This is crucial because it recursively copies directories and preserves symbolic links, permissions, ownership, timestamps, and group settings. Without this flag, you might lose critical metadata that tells your music player where files are located or who owns them. The -v flag enables verbose output, providing detailed information about what is being copied. This helps you monitor progress and identify any potential errors in real-time. Finally, the --progress flag shows the transfer rate and percentage completion for each file, which is helpful for estimating how long the operation will take.
Note the trailing slash on the source path (~/Music/). This tells rsync to copy the *contents* of the Music folder into the destination. If you omit the slash, rsync will create a new folder named "Music" inside your destination, resulting in a path like /Destination/Music/Music, which can confuse some applications.
Executing the Transfer
Open the Terminal application, found in Applications > Utilities. Type the command constructed above, replacing /path/to/destination/ with your actual target path. For example, if you are copying to an external drive named "Backup" mounted at /Volumes/Backup, the command would look like this:
rsync -av --progress ~/Music/ /Volumes/Backup/Music/
Press Enter to start the transfer. Depending on the size of your library and the speed of your storage devices, this may take anywhere from a few minutes to several hours. Do not interrupt the process unless absolutely necessary. Once complete, verify the transfer by checking the file count or comparing sizes between the source and destination. You can use the du command to check disk usage: du -sh ~/Music and du -sh /Volumes/Backup/Music.
Post-Transfer Steps
After the copy is finished, you need to update your music application to point to the new location. In older versions of iTunes, go to Edit > Preferences > Advanced and click "Change..." next to the Music Folder Location. Select the new directory. In newer versions of Apple Music, the process is similar but integrated into the app settings. Ensure that the option to keep files organized in the Music folder is checked if you plan to add new purchases later.
If you are migrating to a new Mac, you may need to authorize the computer in your music app. Also, consider linking your old library to the new one if you want to preserve playlists and ratings. For more details on handling library imports and settings preservation, see How to Re-import iTunes Music to Apple Music while Keeping Settings and Playlists and How to Import iTunes Music to Apple Music App while Preserving Settings and Playlists.
Frequently Asked Questions
What happens if I delete the old Music folder after copying?
You should only delete the old folder after verifying that the new library works perfectly and plays all tracks without errors. Keep the original backup until you are certain the migration was successful to avoid data loss.
Can I use cp instead of rsync?
While cp can copy files, it lacks the robust error handling and permission preservation of rsync. If a transfer fails halfway, cp requires starting over, whereas rsync can resume from where it left off, saving significant time.
Will my playlists and ratings be preserved?
Yes, provided you copy the entire ~/Music directory, including the iTunes Library XML files and related metadata databases. These hidden files contain your organizational data, so they must be included in the transfer.
What if rsync reports permission denied errors?
This usually means you lack read access to certain files. Run the command with sudo prefix (e.g., sudo rsync ...) to gain administrative privileges, but be cautious as this gives root access to the operation.
Does this work for iCloud Music Library users?
If you use iCloud Music Library, your local files are cached and managed differently. Migrating locally stored files is still valid, but ensure you are not conflicting with cloud-synced items, which may require signing out of iCloud Music Library temporarily during the move.