Linux具有称为namespaces的功能,可让您为不同的进程提供文件系统的不同“ View ”。在Windows中,例如,如果您有一个始终从C:\floyd\floyd.ini加载其配置的旧程序“floyd”,这将很有用。如果Windows有 namespace ,则可以编写一个包装器脚本,该脚本将创建一个可在其中运行floyd的 namespace ,这样当Alice运行脚本时,floyd就会在存在C:\floyd但实际上指向C:\Users\Alice\Floyd的环境中启动。

现在您可能会想,“好吧,只需使用软链接(soft link)或硬链接(hard link),并将C:\floyd用作C:\Users\Alice的别名即可。”但是使用命名空间,Bob也可以运行启动脚本,但是他的floyd实例(在同一台计算机上,同时运行)将看到C:\floyd及其内容,例如C:\Users\Bob\Program Settings\Floyd Config(或我们喜欢的任何其他路径)。

您可以在具有 namespace 的Linux上执行此操作。 Windows上有相似或类似的东西吗?如果需要编写C程序就可以了,如果只能在Windows的最新版本上运行就可以了。

最佳答案

NTFS硬链接(hard link)实际上是reparse points的简单情况。输入了重新解析点,并且可以包含更高级的行为。例如,它们还用于“离线存储”(文件在辅助存储之间的透明迁移)。因此,您还可以通过创建新的重新解析类型,使用重新解析点来实现每个用户的符号链接(symbolic link)。

重解析点类型甚至具有一个显式的“名称代理”位,该位(如果已设置)指示这些类型的重解析点是某种符号链接(symbolic link)。

您甚至可以在路径中有多个重新解析点。因此,符号 namespace 中的文件仍可以迁移到辅助存储-路径中只有两个重新解析点。

10-05 22:05