OS X文件系统支持3种类型的快捷链接:
1. 替身(alias)
2. 符号链接(symbolic link)
3. 硬链接(hard link)
快捷链接,就是一个小文件,它的内容包含了一些“指向文件、文件夹、驱动器或者网络设备等文件系统对象”的信息。
快捷链接能让用户更方便的访问到文件、文件夹、驱动器或者网络设备等文件系统对象。
当用户对快捷链接进行某种操作时,系统首先读取快捷链接文件(其中包含了原始对象的位置信息),找到原始文件位置,然后系统打开原始对象进行相应操作。多数情况下,通过快捷链接找原始对象的过程对用户和应用程序是透明的,不可见的。
使用快捷链接的一个好处是,当用户访问一个具有很深目录结构的文件时,不用再一级一级的打开文件夹,而是直接双击快捷链接,就打开了相应的文件。
1. 替身是OS X自己的概念,并且是Finder层级的感念,一些终端下的Unix程序(比如vim)不能正确理解替身文件。但是,替身却是OS X下的最多才多艺的快捷链接。比如,创建了替身之后,替身文件和原始文件可以任意移动位置,这不会影响替身文件指向原始文件,因为替身文件中包含了原始文件的inode信息,而inode信息是唯一的,即使文件被移动来移动去。处理过程大概是这个样子,当用户访问替身文件时,系统分析替身文件,找到原始文件的路径信息,然后判断原始文件是否存在,如果存在就访问它,如果不存在,就找具有相同inode的文件,然后访问该文件。
2. 符号链接(Symbolic Links)是Unix的概念,所以Linux、OS X都会继承这个概念。
符号链接对比替身的优势是,不管是Finder层面还是Terminal层面,都是有效的。
符号连但是,因为符号链接只存储了原始文件的路径信息,所以当原始文件被移走了,符号链接文件就找不到原始文件了。另一种情况是符号链接文件中存储的是相对路径,如果相对路径关系改变了,也就找不到原始文件了。
替身(alias) | 符号链接(Symbolic Link) | 硬链接(Hard Link) | |
链接文件存储的信息 | 文件路径和inode | 文件路径(相对路径或绝对路径) | inode |
链接依据 | 以inode的相同为链接依据 | 以路径相同为链接依据 | 以路inode相同为链接依据 |
优点 | 链接文件和原始文件可以随意移动,都不会改变链接关系 | 如果是绝对路径,原始文件移动到别处了,链接关系将失效。如果是相对路径,原始文件和符号链接文件的相对路径关系改变了,链接关系将失效。只要是链接文件中存储的路径和原始文件的路径一致,链接关系就是有效的。所以,即使原始文件被替换成另外一个文件了,只要路径能对应的上,链接关系就是有效的。 | |
缺点 | OS X自己的概念,Finder层面的概念,Terminal下的一些Unix程序(如vim)不能理解替身文件内容,也就不能理解链接关系,这时链接关系将失效。 | 是Unix的概念,所以Linux和OS X完全继承了下来,无论是Finder下,还是Terminal下的Unix程序,都能正确理解符号链接文件,也就能理解链接关系 | |
创建方法 | Finder中右键点击文件,弹出的快捷菜单中有创建替身功能 | ln -s 原始文件 符号链接文件 |
参考:
http://macs.about.com/od/faq1/f/What-Are-Aliases-Symbolic-Links-And-Hard-Links-In-Mac-Os-X.htm
Question: What Are Aliases, Symbolic Links, and Hard Links in Mac OS X?
What are shortcut links? How do I determine which type of shortcut link I should use to find my files more easily?
Answer:
The OS X file system supports several types of shortcut links to files and folders. Shortcut links can make it easy to navigate to objects that are buried deep within the OS X file system. OS X supports three types of links: aliases, symbolic links, and hard links.
All three types of links are shortcuts to the original file system object. A file system object is usually a file on your Mac, but it can also be a folder, a drive, even a networked device.
Overview of Aliases, Symbolic Links, and Hard Links
Shortcut links are small files that reference another file object. When the system encounters a shortcut link, it reads the file, which contains information about where the original object is located, and then proceeds to open that object. For the most part, this happens without apps recognizing that they've encountered a link of some type. All three types of links try to appear transparent to the user or app that makes use of them.
This transparency allows shortcut links to be used for many different purposes; one of the most common is to conveniently access a file or folder that is buried deep in the file system. For instance, you may have created an accounting folder in your Documents folder for storing bank statements and other financial information. If you use this folder often, you can create an alias to it. The alias will appear on the desktop. Instead of using the Finder to navigate through multiple folder levels to access the accounting folder, you can simply click on its desktop alias. The alias will take you right to the folder and its files, short-circuiting a long navigation process.
Another common use for file system shortcuts is to use the same data in multiple locations, without having to either duplicate the data or keep the data synced.
Let's return to our accounting folder example. Perhaps you have an application that you use to track stock market picks, and the app needs to store its data files in some predefined folder. Instead of copying the accounting folder to a second location, and then having to worry about keeping the two folders in sync, you can create an alias or a symbolic link, so that the stock trading app sees the data in its dedicated folder but actually accesses the data that's stored in your accounting folder.
To sum things up: all three types of shortcuts are simply methods of accessing an object in your Mac's file system from other than its original location. Each type of shortcut has unique features that are better suited for some uses than others. Let's take a closer look.
Link Types
Aliases: This type of shortcut is the oldest for the Mac; its roots go all the way back to System 7. Aliases are created and managed at the Finder level, which means that if you're using Terminal or a non-Mac application, such as many UNIX apps and utilities, an alias won't work. OS X seems to see aliases as small data files, which they are, but it doesn't know how to interpret the information they contain.
This may seem to be a drawback, but aliases are actually the most powerful of the three types of shortcuts. For Mac users and apps, aliases are also the most versatile of the shortcuts.
When you create an alias for an object, the system creates a small data file that includes the current path to the object, as well as the object's inode name. Each object's inode name is a long string of numbers, independent of the name you give the object, and guaranteed to be unique to any volume or drive your Mac uses.
Once you create an alias file, you can move it to any location in your Mac's file system, and it will still point back to the original object. You can move the alias about as many times as you like, and it will still connect to the original object. That's pretty clever, but aliases take the concept a step further.
In addition to the moving the alias, you can also move the original item anywhere in your Mac's file system; the alias will still be able to find the file. Aliases can perform this seemingly magic trick because they contain the inode name of the original item. Because each item's inode name is unique, the system can always find the original file, no matter where you relocate it.
The process works like this: When you access an alias, the system checks to see if the original item is at the pathname stored in the alias file. If it is, then the system accesses it, and that's that. If the object has been moved, the system searches for a file that has the same inode name as the one stored in the alias file. Once it finds a matching inode name, the system then connects to the object.
Symbolic Links: This type of shortcut is part of UNIX and Linux file systems. Because OS X is built on top of UNIX, it fully supports symbolic links. Symbolic links are similar to aliases in that they are small files that contain the pathname to the original object. But unlike aliases, symbolic links don't contain the inode name of the object. If you move the object to a different location, the symbolic link will be broken, and the system won't be able to find the object.
That may seem like a weakness, but it's also a strength. Since symbolic links find an object by its pathname, if you replace an object with another object that bears the same name and is in the same location, the symbolic link will continue to work. This makes symbolic links a natural for version control. For example, you could create a simple version control system for a text file called MyTextFile. You could save older versions of the file with a number or date appended, such as MyTextFile2, and save the current version of the file as MyTextFile.
Hard Links: Like symbolic links, hard links are part of the underlying UNIX file system. Hard links are small files that, like aliases, contain the original item's inode name. But unlike aliases and symbolic links, hard links don't contain the pathname to the original object. You would typically use a hard link when you want a single file object to appear in multiple places. Unlike with aliases and symbolic links, you can't delete the original hard-linked object from the file system without first removing all hard links to it.
Related Articles
- Macintosh File Types: Alias
- praliases - Linux Command - Unix Command
- aliases.sendmail - Linux Command - Unix Command