符号链接是如何实现的?引用是否存储在两侧,还是仅存储在符号链接指向的位置?
故事:我在 Sublime 的文件夹视图中发现了一个奇怪的“错误”。包含文件的文件夹显示为空,但其中的文件不是以点开头的。但是从另一个位置到此文件夹有一个符号链接。这是我现在能想到的唯一可能的原因,可能是它显示为空的原因?
更新:似乎它可能与此有某种关联(因此,与 inode 相关):http://www.sublimetext.com/forum/viewtopic.php?f=3&t=7142&start=10。我尝试了上一篇文章中提到的配置设置,但没有任何效果。
即:首选项>设置--用户:
"ignore_inodes": true
答案1
如果符号链接是“硬”符号链接,则它们可以是双向的。但是,一般来说,符号链接是单向的,有关链接的信息仅存储在符号链接本身中。您的问题可能与符号链接完全无关。
浏览此处获取更多信息:http://en.wikipedia.org/wiki/Symbolic_link
答案2
符号链接被实现为指向某个路径的文件指针。
它仅存在于源处,创建符号链接不会对目标造成任何改变。符号链接也可能无效 - 指向不存在或无法到达的路径。
我看不出目录的传入符号链接如何会导致该目录中出现任何问题。
您的问题可能属于以下情况之一
Sublime 的问题(我假设你指的是文本编辑器 Sublime Text)
权限问题——您用来查看的用户是否可以看到目录条目?
答案3
“symlink() 函数将创建一个名为 path2 的符号链接,其中包含 path1 指向的字符串(path2 是创建的符号链接的名称,path1 是符号链接中包含的字符串)。
path1 指向的字符串应仅被视为字符串,而不应被视为路径名。
如果 symlink() 函数由于 [EIO] 以外的任何原因失败,则 path2 命名的任何文件均不受影响。” 来源-Symlink 手册页
从这个意义上说,符号链接只是指向文件或文件夹的命名路径的另一个名称。换句话说,它们只指向一个方向。您是否尝试过创建更多符号链接来确认它导致了问题?
否则,这可能是 Sublime 与您的操作系统结合时出现的问题。如果您创建其他文件,它们会正确显示吗?此外,它们是什么类型的文件?您是否已确保已将其文件夹添加到侧边栏?
干杯,尼尔斯
答案4
这与符号链接有关,但它是 Sublime Text 中的一个错误。
如果您在 Sublime 中打开了一个文件夹,其中有一个子文件夹,该子文件夹具有指向同一子结构中另一个文件夹的符号链接,则原始文件夹将显示为空。这可能与 GOTO 命令有关,以避免重复。
如果您直接打开文件夹或打开没有指向树中明显空的文件夹的符号链接的父文件夹,则文件夹内容将显示。