什么是Mac OS X中的别名,符号链接和硬链接?

OS X文件系统支持多种类型的文件和文件夹快捷链接。 通过快捷链接可以轻松导航到深埋在OS X文件系统中的对象 。 OS X支持三种类型的链接:别名,符号链接和硬链接。

所有这三种类型的链接都是原始文件系统对象的快捷方式。 文件系统对象通常是Mac上的文件,但它也可以是文件夹,驱动器,甚至联网设备。

概述别名,符号链接和硬链接

快捷链接是引用另一个文件对象的小文件。 当系统遇到快捷方式链接时,它将读取包含有关原始对象位置信息的文件,然后继续打开该对象。 大多数情况下,这种情况发生时,应用程序不会意识到他们遇到了某种类型的链接。 所有这三种类型的链接都尝试对使用它们的用户或应用显示透明。

这种透明度允许快捷链接用于许多不同的目的; 最常见的一种方法是方便地访问深埋在文件系统中的文件或文件夹。 例如,您可能在您的“文档”文件夹中创建了一个记帐文件夹,用于存储银行对账单和其他财务信息。 如果你经常使用这个文件夹,你可以为它创建一个别名。 该别名将出现在桌面上。 您不必使用Finder浏览多个文件夹级别以访问记帐文件夹,只需单击其桌面别名即可。 该别名将带您访问该文件夹及其文件,从而缩短漫长的导航过程。

文件系统快捷方式的另一个常见用途是在多个位置使用相同的数据,而不必复制数据或保持数据同步。

让我们回到我们的会计文件夹示例。 也许你有一个应用程序用于跟踪股票市场挑选,并且应用程序需要将其数据文件存储在某个预定义的文件夹中。 与其将会计文件夹复制到第二个位置,然后不必将两个文件夹保持同步,您可以创建别名或符号链接,以便股票交易应用程序在其专用文件夹中查看数据,但实际上可以访问存储在您的记帐文件夹中的数据。

总结一下:所有这三种类型的快捷方式都是访问Mac文件系统中的对象而不是其原始位置的方法。 每种类型的快捷方式都有独特的功能,比其他功能更适合某些用途。 让我们仔细看看。

别名

这种类型的快捷方式对于Mac来说是最古老的; 它的根源一直回到System 7 。 在Finder级别创建和管理别名,这意味着如果您使用的是Terminal或非Mac应用程序(例如许多UNIX应用程序和实用程序),别名将无法使用。 OS X似乎将别名视为小数据文件,但它不知道如何解释它们包含的信息。

这似乎是一个缺点,但别名实际上是三种类型快捷键中最强大的。 对于Mac用户和应用程序,别名也是最通用的快捷方式。

为对象创建别名时,系统会创建一个小型数据文件,其中包含对象的当前路径以及对象的inode名称。 每个对象的inode名称都是一串很长的数字,与您给该对象的名称无关,并且保证它是Mac使用的任何音量或驱动器所独有的。

创建别名文件后,您可以将其移至Mac文件系统中的任何位置,并且仍会指向原始对象。 您可以根据需要多次移动别名,并且它仍会连接到原始对象。 这非常聪明,但别名使概念更进一步。

除了移动别名之外,您还可以将原始项目移动到Mac文件系统的任何位置; 该别名仍然能够找到该文件。 别名可以执行这个看似魔术的技巧,因为它们包含原始项目的inode名称。 由于每个项目的inode名称都是唯一的,因此系统始终可以找到原始文件,无论您将其重新定位在何处。

该过程如下工作:当您访问别名时,系统检查以查看原始项目是否位于存储在别名文件中的路径名中。 如果是,那么系统会访问它,就是这样。 如果对象已被移动,系统将搜索与存储在别名文件中的文件具有相同索引节点名称的文件。 一旦找到匹配的inode名称,系统就会连接到该对象。

符号链接

这种类型的快捷方式是UNIX和Linux文件系统的一部分。 由于OS X构建在UNIX之上,因此它完全支持符号链接 。 符号链接与别名相似,因为它们是包含原始对象路径名的小文件。 但与别名不同,符号链接不包含对象的inode名称。 如果将对象移动到其他位置,符号链接将被打破,系统将无法找到该对象。

这看起来像是一个弱点,但它也是一种力量。 由于符号链接通过其路径名查找对象,因此如果用另一个具有相同名称且位于相同位置的对象替换对象,则符号链接将继续工作。 这使得符号链接对于版本控制来说很自然。 例如,您可以为名为MyTextFile的文本文件创建一个简单的版本控制系统。 您可以使用附加的数字或日期保存旧版本的文件,例如MyTextFile2,并将当前版本的文件保存为MyTextFile。

硬链接

像符号链接一样, 硬链接是底层UNIX文件系统的一部分。 硬链接是小文件,与别名一样,包含原始项目的inode名称。 但与别名和符号链接不同,硬链接不包含原始对象的路径名称。 当您希望单个文件对象出现在多个位置时,通常会使用硬链接。 与别名和符号链接不同,您不能先删除文件系统中的原始硬链接对象,也不能先删除所有硬链接。

参考和进一步阅读