- Understanding the System File Structure
- Managing Font Resources
- Managing Hidden Items
- Using Aliases and Links
- Understanding File System Metadata
- Managing Launch Services
- Using Spotlight and Quick Look
- Using File Archives and Disk Images
- Managing Time Machine
- What You've Learned
- References
- Review Quiz
Using Aliases and Links
Another example of Lion being a hybrid of both UNIX and the classic Mac OS is the multiple methods used for file system pointers or shortcuts. Generally speaking, file system shortcuts are files that reference other files or folders. This allows you to have a single item appear in multiple locations or with multiple names without having to create multiple copies of the item. Both the system and users take advantage of file system shortcuts to access items in more convenient locations without having to duplicate those items.
Lion uses three primary file system shortcut types:
- Aliases—These shortcuts are a holdover from the classic Mac OS but have been updated for Mac OS X duties. Aliases can be created with the Finder but are useless in Terminal. Command-line tools think that aliases are nothing more than data files and do not know how to follow their references back to the original items. Aliases, however, are more resilient than other shortcut types in that if the original item is replaced or moved, the alias will almost never lose the original item. An example of how aliases are used by the operating system is the Finder’s Burn Folder feature, which allows you to organize files before you burn them to an optical disc. The Finder populates the burn folder with aliases instead of copies of the original items in order to save space.
- Symbolic Links—These shortcuts are part of the traditional UNIX file system and are simple pointers to the file system path of the original item. Thus, if you move the original item, the symbolic link will be broken. However, replacing the original item works because the path remains the same. You can create symbolic links with the ln command. The Finder cannot create symbolic links, but it can follow them to the original item. An example use of symbolic links in Lion is the way the system layout stores several fundamental UNIX folders in the /private folder but also makes those items available at the root of the file system using symbolic links.
- Hard Links—These shortcuts are also part of the traditional UNIX file system and are actual additional references to the original item. Think of a normal file as two parts; first, the bits on the physical drive that make up the file’s actual content, and second, a name that points to those bits. A hard link is an additional name that points to the same bits on the physical drive. You can also use the ln command to create hard links. The Finder cannot create hard links, but it can follow them. An example use of hard links in Lion is for Time Machine backups. Time Machine uses hard links to reference items that have not changed since the previous backup, thus saving a tremendous amount of space. Finally, Mac OS X is unique in its ability to use hard links of both files and folders; again, this is to support Time Machine backups.
Creating Aliases
The Finder provides several methods for creating aliases. Simply select the item you want to create an alias for, and then choose one of the following methods:
Choose File > Make Alias from the menu bar.
- Use the Command-L keyboard shortcut.
In a Finder window, select the Action button (the small gear icon) from the toolbar and then from the pop-up menu select Make Alias.
Right-click or Control-click the item, and then from the pop-up menu select Make Alias.
- Click and drag the original item while holding down the Option and Command keys to drop the alias in another location. This is the only method that doesn’t append the word “alias” to the new alias filename.
Once you have created the alias, you can rename it or move it anywhere you like. As long as the original item remains somewhere on the original volume, even if it’s replaced or its name changes, the Finder will be able to locate the alias. An alias file is easy to recognize by the small curved arrow that appears at the bottom left corner of the icon. From the Finder, you can locate the alias’s target by right-clicking, or Control-clicking, on the alias and then selecting Show Original from the pop-up menu.
In the rare case that an alias is broken, most likely because the original item was copied to another volume and then deleted off the original volume, you can repair the alias in the Finder. One method is to double-click on the broken alias; the Finder will automatically prompt you to select a new original. Another option, which can also be used to redirect an existing alias, is to open the Finder’s Get Info window and then in the General area click the Select New Original button. Both methods will open a browser dialog allowing you to select a new original for the alias.
Creating Symbolic Links
Because UNIX tools do not support aliases, you will need to create links if you wish to use shortcuts in Terminal. The ln command used with no additional options creates hard links, while the -s option creates symbolic links. In both cases the arguments are the original item’s path and name first, followed by the new link’s path and name.
In the following example, Michelle has already created a folder named MyFolder and an alias to that folder named MyFolderAlias. She first lists the items using ls -lh to list in long format with “human readable” file sizes. She then attempts to navigate into the alias folder, but, as covered previously, the command line does not understand alias files, so it returns an error. Next, Michelle uses ln -s to create a symbolic link of MyFolder with the new link being named MyFolderSymLink. She lists items again to verify the symbolic link was created; note the “l” at the beginning of the permissions string and the arrow after the symbolic link’s name pointing to the original item. Finally, she successfully navigates into the symbolic link folder.
MyMac:Desktop michelle$ls -lh
total 2032 drwxr-xr-x 19 michelle staff 646B Jul 15 21:24 MyFolder -rw-r--r--@ 1 michelle staff 507K Jul 15 22:39 MyFolderAlias MyMac:Desktop michelle$cd MyFolderAlias
-bash: cd: MyFolderAlias: Not a directory MyMac:Desktop michelle$ln -s MyFolder MyFolderSymLink
MyMac:Desktop michelle$ls -lh
total 2040 drwxr-xr-x 19 michelle staff 646B Jul 15 21:24 MyFolder -rw-r--r--@ 1 michelle staff 507K Jul 15 22:39 MyFolderAlias lrwxr-xr-x 1 michelle staff 8B Jul 15 22:47 MyFolderSymLink -> MyFolder MyMac:Desktop michelle$cd MyFolderSymLink
MyMac:MyFolderSymLink michelle$pwd
/Users/michelle/Desktop/MyFolderSymLink
Comparing File System Shortcut Types
This next example shows the differences between aliases, symbolic links, and hard links from Terminal. Michelle has already created a rather large disk image file named BigFile and an alias to that item named BigFileAlias. She starts by listing the items showing their size; note that the original file is much larger, measured in megabytes, than the alias, measured in kilobytes. She then makes two links; the first is a hard link named BigFileHardLink, and the second is a symbolic link named BigFileSymLink. Finally, she lists the items to compare their sizes once more.
MyMac:Desktop michelle$ls -lh
total 200512 -rw-r--r--@ 1 michelle staff 98M Jul 15 21:07 BigFile.dmg -rw-r--r--@ 1 michelle staff 109K Jul 15 23:03 BigFileAlias MyMac:Desktop michelle$ln BigFile.dmg BigFileHardLink
MyMac:Desktop michelle$ln -s BigFile.dmg BigFileSymLink
MyMac:Desktop michelle$ls -lh
total 400584 -rw-r--r--@ 2 michelle staff 98M Jul 15 21:07 BigFile.dmg -rw-r--r--@ 1 michelle staff 109K Jul 15 23:03 BigFileAlias -rw-r--r--@ 2 michelle staff 98M Jul 15 21:07 BigFileHardLink lrwxr-xr-x 1 michelle staff 11B Jul 15 23:04 BigFileSymLink -> BigFile.dmg
Note in the previous example that the hard link is the exact same size as the original, indicating that they are both pointing to the same bits on the physical drive. Also note that the number between the permissions string and the owner for the original item has increased from 1 to 2. This number represents the number of links to a file, thus creating the new hard link incremented this number by one. Finally, notice how small the symbolic link is, measured in bytes, compared with the alias. The extra information in the alias is what allows the system to keep track of the original item if it should ever change locations.
Finally, the following screenshots show multiple Finder Get Info dialogs examining all four of the items created for this example. Specifically, look at what the Get Info dialog reports for the item’s Kind. Both the alias and the symbolic link are reported as an Alias despite their size and technology difference. Besides the size, another clue is that the Finder cannot select a new original for the symbolic link. Also notice that the hard link is reporting the exact same information as the original item, again indicating that they share the same bits on the physical drive.