How to Copy ~/Music from Terminal on Mac to Maintain File Location

Abstract: Resolve iTunes and Apple Music library recognition issues after moving ~/Music by using rsync to preserve file structure, permissions, and timestamps.

Created: 2026-10-08 by

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.

Latest News

How to Display Output of xterm Command in Terminal Screen using Cron

Resolve the inability to display xterm output in a terminal screen from cron by redirecting logs or using wall instead of insecure X11 workarounds.

Read More
Expose Local Server on VPS Preserving Real Client IPs (OS Level)

Resolve VPS logging showing only gateway IPs by configuring reverse proxies to forward real client addresses via X-Forwarded-For headers.

Read More
How to Clear Recent Files History in Linux without Deleting Actual Files?

Clear recent files history in Linux by deleting ~/.local/share/recently-used.xbel without removing the actual files.

Read More
Best HDD Copy Strategy: Manually Syncing and Rewriting Scratch

Resolve data drift between two 4TB hard drives by using rsync with the --delete flag to manually sync and rewrite scratch data for an exact mirror.

Read More
Understanding Bash Prompt Abbreviations: An Overview

Resolve repetitive typing errors by creating and persisting Bash aliases in the .bashrc file for improved command-line efficiency.

Read More
Free Tools and Methods to Log Real-Time Performance Details in Task Manager

Log real-time CPU and memory metrics to CSV files using Windows Performance Monitor Data Collector Sets to troubleshoot system slowness.

Read More
Contact Qatar Airways Customer Service: Phone Number, Help Center, and More

Resolve urgent Qatar Airways reservation issues like flight changes and baggage claims using the US phone number +1801-855-5905 or online self-service tools.

Read More
Windows 11: Alt Codes Displaying Wrong Characters - Solutions

Resolve Windows 11 Alt codes showing wrong characters by verifying the US keyboard layout and enabling Num Lock.

Read More
Run Programs with Elevated Privileges: A Comprehensive Guide

Eliminates the need to type sudo for frequent administrative tasks by configuring .bashrc aliases or functions.

Read More
Dynamically Changing Dates in Excel Formulas Using Cells

Eliminate manual date updates in Excel by using cell references to create dynamic formulas that automatically adjust calculations when input dates change.

Read More
Granting Edit Access to a Specific Excel Sheet in an Office 365 User Email ID-Based Login

Excel Online lacks native sheet-level permissions, so users must split workbooks or use worksheet protection to isolate edit access for specific tabs.

Read More
Creating Network Load on Local Wi-Fi from One PC

Generate sustained Wi-Fi bandwidth load from a single PC using a VM SFTP server to test router stability and throughput.

Read More
Changing the Default Editor for Batch Files in Windows 11's File Explorer

Resolve the issue of batch files opening in Notepad by changing the default editor to a preferred application like VS Code.

Read More
Gain WiFi Connection Minutes Before Losing it by Changing MAC Address

Bypass MAC address filtering to restore WiFi connectivity temporarily when a device is blocked by network administrators.

Read More
Photos Folders Turned Black: Troubleshooting Picture Applications on Windows

Resolve black screens in Windows Photos by resetting the app, updating graphics drivers, and repairing system files.

Read More
Troubleshooting High CPU Temperature Values: A Step-by-Step Guide

Resolve high CPU temperatures and thermal throttling by monitoring with Speedfan, cleaning dust from cooling components, and replacing degraded thermal paste.

Read More
Make cURL establish TLS connection with CA unknown

Resolve cURL TLS connection failures with unknown or self-signed certificates by using the --insecure flag to bypass CA validation.

Read More
Troubleshooting Incorrect Network Metrics Values in Grafana, Prometheus, InfluxDB, and Telegraf

Fix incorrect network metrics in Grafana, Prometheus, InfluxDB, and Telegraf by verifying interface selection, resolving unit mismatches, and handling counter resets.

Read More
Start Another Terminal Window (cmd.exe) Windows Repair/Troubleshoot

Provides step-by-step instructions to access the Windows Command Prompt via bootable media for advanced system repair and troubleshooting.

Read More
Thinkpad P1 Gen 6: Sudden Thunderbolt 3 Dock USB-C Charging Stopped Working

Resolve sudden Thunderbolt 3 dock USB-C charging and internet failure on ThinkPad P1 Gen 6 by updating firmware, resetting the dock, and adjusting power settings.

Read More
ASUS Windows 11 Laptop: Internet Connection Issue with Hotspot

Resolve ASUS Windows 11 laptop spinning wheel issue when connecting to mobile hotspot by resetting network stack, disabling IPv6, and adjusting power settings.

Read More
Developing iOS Project with Firebase: Logging in and Sending Push Notifications

Integrates Firebase to enable secure user authentication and push notifications in iOS applications.

Read More
Troubleshooting Bash Script with Suspected Issues of Spaces, Dashes, Filenames and Quoting

Resolve Bash script failures caused by word splitting, globbing, and special characters in filenames by applying proper quoting techniques.

Read More
Populating OneDrive Folder for Local Backup without Affecting Remote Files

Prevent OneDrive from deleting remote files during Windows reinstallation by unlinking the account or using symbolic links to isolate local data.

Read More
Force First Frame as Keyframe Without Re-encoding: A Quick Solution

Resolve inaccurate seeking and playback glitches by re-encoding video to ensure the first frame is a valid keyframe.

Read More
Find Information in Database Using WSL (Ubuntu) on Windows-10

Resolve database connection issues from WSL Ubuntu on Windows 10 by configuring client tools and network access to query remote or local servers.

Read More
Configuring a New Router with Different Networks: One Family, One Guest

Resolve IP conflicts and isolate guest traffic by configuring a second router with a distinct subnet via its WAN port.

Read More
Quickly Open Multiple Stock Websites with a Single Command

Solve the problem of manually opening multiple stock research websites by creating a single command to launch them simultaneously on Windows, macOS, or Linux.

Read More
Improved Adobe Acrobat Search Experience: Access Advanced Search with Ease

Access advanced search filters like case sensitivity and regex in Adobe Acrobat by clicking More Options in the Find bar.

Read More
Port Forwarding VM via OpenVPN: A Comprehensive Guide

Configure OpenVPN server and iptables to forward specific ports from VPN clients to a virtual machine's internal IP address.

Read More
Understanding Partitions in the 1980s: A Look Back at MS-DOS and Master Boot Record

Explains how the Master Boot Record and partition table enabled MS-DOS to manage multiple disk volumes on a single physical drive.

Read More
Windows 10 Enterprise: Keyboard Not Detected in Managed Organization with Admin Privileges

Resolve Windows 10 Enterprise keyboard detection failures caused by Group Policy restrictions, driver corruption, or USB enumeration errors.

Read More
Can't Find x86_64 Versions of Applications on MacOS arm64 (M1)

Resolve missing x86_64 app issues on M1 Macs by installing Rosetta 2 and reinstalling apps as universal binaries.

Read More
How to Hide Installation Source for an Android App

Manage Android app installation source visibility by using USB transfers or file managers to reduce browser traces and isolate data via work profiles.

Read More
Connecting Momentus 4200.2 ST9808210A Hard Drive via USB Cable

Resolve inability to access Seagate Momentus 4200.2 ST9808210A hard drive by connecting it via USB using a compatible SATA-to-USB adapter and configuring the disk in Windows.

Read More