符号链接与Windows快捷方式?

Ubuntu和Windows快捷方式中的符号链接有什么区别? 它们是类似的概念吗? 或者Ubuntu中是否有类似Windows快捷方式的东西?

是的,不是。

为了理解这里的变幻莫测,您需要了解inode表与写入磁盘的数据之间的关系。

Windows快捷方式是常规文件中包含的路径数据。 可以把它们想象成只包含文件URI的文本文件。 来自维基百科:

快捷方式被文件系统和不知道它们的软件程序视为普通文件。 只有了解快捷方式的软件程序(例如Windows shell和文件浏览器)才会将它们视为对其他文件的引用。

另一个区别是该机制的function:Microsoft Windows快捷方式通常通过绝对路径(从根目录开始)引用目标,而POSIX符号链接可以通过绝对路径或相对路径引用目标。 如果符号链接的位置和目的地共享公共路径前缀,则后者是有用的,但是当创建符号链接时(例如,在可以在任何地方解包的存档文件中)该前缀尚未知道。

Microsoft Windows应用程序快捷方式包含可与目标关联的其他元数据,而POSIX符号链接只是将被解释为绝对路径名或相对路径名的字符串。

Windows Vista,7和8 也支持NTFS下的原生符号链接

POSIX兼容的符号链接不是文件。 相反,它们是inode表中的条目,它们由文件系统自动解析。 任何软件程序在访问符号链接时,都会看到目标,无论程序是否知道符号链接。

符号链接很像Windows快捷方式。 它们就像一个别名,指向文件系统中的真实对象。 如果对象移动或被删除,链接将被破坏。

Windows和Linux都有硬链接,这是非常不同的。 我从未使用过Windows以来的Windows,当时没有用于硬链接的UI,但是有一个API,一个应用程序可以创建一个硬链接(它也可以由用户使用Cygwin完成)。

硬链接是文件系统中另一个完整的对象。 您可以拥有多个链接,并且所有链接的行为都相同。 不过,他们都指向相同的存储空间。 如果删除一个,另一个仍然存在,则在删除所有链接之前不会删除存储。