在我看来,软/符号链接的基本概念与快捷方式(在 PC 上)或别名(在 Mac 上)相比是一样的。我还差得远吗?它们相似吗?
答案1
基本思想是差不多的。符号链接是一个特殊文件,其中包含另一个文件系统对象的路径(相对或绝对)。在 UNIX/Linux 中,操作系统本身处理符号链接,透明地解析为真实对象。
在 Mac 上,别名似乎是一种特殊的 Finder 构造,可以引用远程对象以及本地对象,但 Finder 解析引用,而不是操作系统。 MacOS X 也有符号链接,但它们与别名是分开的。
最大的区别在于 Windows 快捷方式和符号链接之间。 Windows 快捷方式无法轻松替换程序,因为 Windows 总是必须具有这些讨厌的文件扩展名,并且“lnk”文件是不是对于 Windows 来说是可执行文件。在 GUI 中,它可以工作,但从服务器的角度来看,它会崩溃。与目录相同。它们很有用,但不具备符号链接的功能和灵活性。
答案2
并不真地。有相似之处,但仅在一定程度上相似。我知道有人会想“好吧,符号链接就像快捷方式,但我不太理解它们”,直到他们说“哦,实际上符号链接不像快捷方式,现在我理解它们了”。所以我认为快捷方式不是理解符号链接的好方法,我建议您清除与快捷方式的比较。
符号链接表示另一个文件的名称。这是完整路径中的“名称”,即可能包括目录部分以及目录内的名称。路径可以是绝对路径 ( /foo/bar
) 或相对路径 (foo/bar
或../bar
或 只是bar
);如果目标由相对路径给出,则相对于包含符号链接的目录进行解释。目标文件可能存在,也可能不存在,删除、移动或创建目标文件不会影响符号链接。
作用于文件内容的操作作用于目标文件。因此,当您通过符号链接读取或写入文件,或通过符号链接执行程序时,就好像您正在访问目标文件一样。从外部作用于文件的操作(例如重命名或删除)作用于符号链接本身。请注意,对于写入,无论是覆盖现有文件(这将作用于目标)还是删除现有文件并创建新文件(这将使目标保持不变并创建一个新文件来替换符号链接)都会有所不同,除非应用程序会小心地点击链接(很多人都会这样做))。
答案3
补充@Giles所说的内容。
符号链接存在于所有现代 Unix 中(UNIX、Gnu/Linux、Linux(是在内核中完成的)、MacOS、BSD、QNX)。 MS-Windows 也有它们,但默认情况下被禁用(我上次检查过)。不要将 Mac 快捷方式与符号链接混淆,它们是不同的。
如果程序尝试访问作为另一个文件的符号链接的文件,那么它将访问目标。这甚至适用于不了解符号链接概念的程序。
Unix 符号链接:
- 自动遍历:程序不需要特殊的代码来遍历。它只是有效,最多大约 100 跳。
- 创建:需要特殊的系统调用。
- 仅适用于 Unix 文件系统。
MS-快捷方式
- 需要编写 MS-Windows 程序才能了解快捷方式的概念。
- 遍历限制为 1 跳。
- 适用于任何文件系统(没有长文件名支持,您只能使用 8 个字符)。
- 它们只是文件,理论上可以像任何其他文件一样创建。然而,上次我检查时,记录很少。
设计理念。
符号链接
当符号链接被发明时,需要对操作系统和文件系统进行更改。然而,所有现有程序突然都获得了遍历它们的能力。无论是桌面、命令行、服务还是其他。
文件快捷方式
当快捷方式被发明并添加到 MS-Windows 时,不需要对操作系统或文件系统进行任何更改。然而,所有遍历它们的程序都需要更改。这就是为什么文件资源管理器通常是唯一遍历它们的程序,或者使用文件资源管理器作为文件加载器的程序。
答案4
我认为软链接确实就像Windows的“快捷方式”,而硬链接更像是文件的辅助备份,但也有自己独立的生命周期......有意义吗?