我很好奇大多数人对这个问题的看法。就我个人而言,除非别无选择,否则我几乎总是更喜欢符号链接——我发现当有人浏览文件系统时,符号链接更加明显,但另一方面,别名更独立于平台。例如,Windows XP 没有任何与符号链接相媲美的东西(NTFS 连接无法被正确解释至少一些环境),这意味着任何依赖于基于 *nix 的系统上的符号链接的东西都无法传输。(我知道 Windows 64x 操作系统有符号链接,但我还没有看到它们是否能被前面提到的环境正确读取)
除此之外,我还想知道哪个更快。这有可能知道吗?你有什么猜测吗?我会想象,由于符号链接通常比 Apache 更低级,因此引用它们的速度更快是有道理的,但另一方面,我猜 Apache 在任何一种情况下都需要进行查找,因此它将依赖于磁盘读取。
答案1
别名包含两条信息:它链接到的文件的唯一标识符,以及它链接到的文件的路径和文件名。
如果您重命名或移动一个文件,然后使用该文件原来的路径和文件名创建一个新文件,那么链接到原始文件的任何别名现在都会链接到新文件。
但是,如果您重命名或移动文件而不替换它,然后调用别名,则别名将更新为指向新路径和文件名,并利用唯一标识符来执行此操作。
另一方面,符号链接不包含文件的唯一标识符,如果文件被重命名或移动,而不是用相同路径和文件名的文件替换,则会显示为损坏。
您的选择应取决于最适合您的场景。
答案2
我通常更喜欢使用别名,因为符号链接依赖于一个 URL 直接对应一个文件系统路径的一般性。过去通常都是这样,但由于大多数 Web 应用程序中都普遍存在搜索引擎友好的 URL,其中一些应用程序执行一些相当复杂的路由,因此文档根目录很少是我首先检查以找出 URL 去向的地方。