gpt4 book ai didi

windows - 应用程序如何处理 Windows 符号链接(symbolic link)?

转载 作者:可可西里 更新时间:2023-11-01 11:05:50 24 4
gpt4 key购买 nike

我认为 Windows 10 中的符号链接(symbolic link)的行为类似于 Linux 符号链接(symbolic link),即它们对应用程序是透明的。但是,我对实际行为感到困惑。

例如,我对同一个 CSS 文件进行了软链接(soft link)和硬链接(hard link):

$ mklink softlinked.css Default.css
symbolic link created for softlinked.css <<===>> Default.css

$ mklink /H hardlinked.css Default.css
Hardlink created for hardlinked.css <<===>> Default.css

soft and hard link

硬链接(hard link)的行为可预测(与原始文件没有区别)但我不理解软链接(soft link)。参见例如:

enter image description here

此外,当插入符号编辑器使用 CSS 时,硬链接(hard link)样式表工作正常:

enter image description here

当软链接(soft link)被破坏时:

enter image description here

问题是:

  1. 符号链接(symbolic link)在 Windows 上的实际行为如何?
  2. 能否使软链接(soft link)对应用程序透明?通过透明,我的意思是应用程序将始终将文件视为在符号链接(symbolic link)路径 (...\symlinked.css) 上,并且永远不会解析为原始路径 (...\Default .css).是否有一些 Windows 注册表设置或其他内容?

最佳答案

符号链接(symbolic link)对于使用底层文件系统的应用程序是透明的,例如 CreateFile() 和 friend ,除非应用程序做出特定的努力来了解它们。

但是,它们对使用 shell 命名空间的应用程序(例如标准的“打开文件”对话框)是透明的,因为 shell 将符号链接(symbolic link)视为快捷方式,甚至到了修改的地步显示的图标。这是否是微软方面的明智决定在现阶段尚无定论,因为它不会改变。据我所知,它是不可配置的。

在实践中,这通常意味着符号链接(symbolic link)对于非 GUI 应用程序和 GUI 应用程序中的内部文件(DLL、内置模板、配置文件等)将表现透明,但对于用户文档则不然。

因此您的前两个示例(Explorer 显示文件的方式和 Notepad++ 的行为)是功能而不是错误;不管喜欢与否,这就是 Windows 设计的工作方式。

您的最后一个示例在所讨论的应用程序中确实看起来是一个错误(或者充其量是一个不受欢迎的设计限制)。可能值得联系供应商。


您还应该知道,创建符号链接(symbolic link)需要管理权限,默认情况下它们根本无法通过网络共享工作。就个人而言,鉴于所有这些限制,我从未发现它们非常有用。对于大多数用户任务,我会改用快捷方式,而对于大多数系统管理任务,连接点更可靠。

关于windows - 应用程序如何处理 Windows 符号链接(symbolic link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43090597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com