天天看點

OS X中快捷方式(Aliases-替身, Symbolic Links-符号連結, and Hard Links-硬連結)的差別

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