How to move a folder containing aliases to another machine without breaking the aliases?

I've got a large folder of music with lots of aliases to tunes that are spread throughout subfolders of the main tunes folder. For example I might keep the original files sorted by artist, and then have a folder for a genre with a bunch of aliases to tunes (or folders of tunes) for that genre, like a playlist.

Now that I've got a new laptop how can I transfer the whole folder without breaking the aliases?

I tried using the symbolic link options of rsync but that doesn't seem to work with OS X aliases.

BTW I'm not interested in replacing the aliases with a copy of the original, I really want to keep the aliases :)

Is this something Time Machine can help with?

Thanks!


Solution 1:

Aliases are not the same as symlinks.

Symlinks just point to a path (relative or absolute). Aliases first track the file's unique ID and then the path.

Since there are two pieces of information stored in an alias - they are more robust and will follow a file that's moved based on the unique ID. The downside is that the unique ID is based on the file system so copying the file elsewhere mints a new ID so the alias doesn’t map to the new location by design and implementation (currently at least).

Finder (or the very powerful ditto) are your best bets for moving aliases intact. Worst case you could use disk utility to make an image of a folder that contains everything needed as a subfolder and then move that to preserve the relative locations of the files and isolate the effects of a short name change (/Users/whatever) in case you wish to change that. Once the original mac is disconnected from the new mac - the aliases will reconnect as desired to location of the files on the new mac.

Solution 2:

I believe aliases will be handled correctly if copied through the finder, even to external media. If you are doing it through rsync you will probably have issues.

References:

  • Forum Posting
  • Script to possibly convert Aliases to Symlinks