别名和链接有什么区别?


Answers:


26

别名包含两条信息:链接到的文件的唯一标识符,以及链接到的文件的路径和文件名。

如果重命名或移动文件,然后使用该文件最初具有的路径和文件名创建一个新文件,则链接到原始文件的任何别名现在都将链接到新文件。

但是,如果重命名或移动文件而不替换它,然后调用别名,则别名将更新为指向新的路径和文件名,并使用唯一标识符执行此操作。

另一方面,符号链接不包含文件的唯一标识符,并且如果文件被重命名或移动并且未替换为具有相同路径和文件名的文件,则符号链接将显示为损坏。

您的选择应取决于最适合您的方案。


11
另一个区别是命令行工具(即使用Posix文件API的任何工具)将不能理解别名,而只能理解符号链接。两者都适用于GUI应用程序。
戈登·戴维森

正如我在这篇文章(apple.stackexchange.com/questions/2992/…)中发布的那样,我发现automator操作不适用于链接,但适用于别名。
prosseek 2010年

@sentinal您还应该添加什么硬链接
user151019

1
值得注意的是,Spotlight不会索引符号链接。它将为别名编制索引(尽管排名较低)
。– ocodo

2

我对哨兵的回答感到困惑create a new file with the path and filename that the file originally had。也是突然的,为什么要这么做?

好吧,如果您了解别名如何以及如何使用UID和文件路径工作(而symlink仅在路径上工作),那么您可以更轻松地理解区别和投票结果。

在HFS和HFS +文件系统上,每个文件和文件夹都有一个唯一的持久标识符。别名使用此标识以及路径名信息来查找同一卷上的文件和文件夹。

从Mac OS X 10.2开始,别名首先使用路径名,然后使用唯一标识来反转此搜索顺序。这意味着,如果您移动文件并将其替换为同名文件,则原始文件的别名现在指向新文件。同样,如果在同一卷上移动文件(而不替换文件),则别名会使用唯一的标识信息来定位文件。

当文件或文件夹移动时,别名可以更新其路径信息或唯一身份信息以说明更改。如果文件移动到同一卷上的某个位置,则别名将使用该文件的新路径信息更新其内部记录。同样,如果原始文件被具有相同名称但唯一标识不同的文件替换,则别名将使用新文件的唯一标识更新其内部记录。(的结果create a new file with the path and filename that the file originally had

由于别名最初使用文件系统路径来解析文件位置,因此它们现在提供与符号链接类似的行为。符号链接仅依赖于路径信息来定位文件。如果将文件移动到同一卷上的某个位置而不替换它,则指向文件的符号链接会断开,而别名不会断开。修复符号链接的唯一方法是删除它并创建一个新的链接。

参考


1
这似乎是对答案的评论,而不是试图回答OP的问题。您能解释一下您的帖子如何回答原始问题吗?有关编写好的答案的指导,请参见“ 如何回答”。-评论
-fsb

我通过解释如何在Mac上进行别名搜索来解决OP的问题,也就是说,如何在搜索中使用文件和UID的路径。投票率很高的答案回答了差异,但未回答为什么会产生差异。
伊萨纳
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.