如何以这种方式访问​​目录?


1

我有 C:\HardDrive1\name\D:\HardDrive2\name。我想在(至少只读)访问这些文件夹 I:\name (例如)。这可能在Windows?另外我感兴趣的是UNIX有办法吗?


Windows 7(可能还有vista)有符号链接。旧窗户有交界处。在这种情况下,您可能希望特定于版本。
Journeyman Geek

Answers:



1

在Windows 7和Vista上,有命令行实用程序 mklink 制作 象征性的联系 ,其余的,有 junction 从sysinternals创建所谓的 交界点

要注意的一些事项:

  • 连接点和符号链接是两个目录之间的软链接。
  • 永远不要使用递归删除工具删除联结(Windows 2000,XP),它将删除文件 首先是结点(从而删除真实文件)。使用该工具 rmdir 删除交接点。
  • 如果删除符号链接(使用mklink,Windows Vista和7制作),那就会消失。

如果删除真实目录,则结点/符号链接从现在开始将是一个空目录。

  • 它是 强制性 将两个分区格式化为 NTFS 制作交汇点或符号链接。

用法:

首先,创建联结(s)/符号链接将指向的文件夹,在此示例中, I:\name1I:\name2。交汇点需要一个空的NTFS文件夹指向!

C:\>mklink /d "I:\name1" "C:\HardDrive1\name"
C:\>mklink /d "I:\name2" "D:\HardDrive2\name"

或者,在XP上使用 junction.exe

C:\>junction /d "I:\name1" "C:\HardDrive1\name"
C:\>junction /d "I:\name2" "D:\HardDrive2\name"

问题是我不想只创建两个链接 I:\name1 I:\name2。我真正需要的是从同一(虚拟)路径访问两条(或更多条)路径。可能的解决方案是为每个文件(文件夹)创建链接(联结) C:\HardDrive1\name D:\HardDrive2\name Z:\HardDrive1000\name 在目标目录中 I:\name。这是完美的。但这个丑陋的黑客IMO(在我的情况下,我需要为每个驱动器创建100K链接)。
ShyMan

您不能将两个交汇点指向完全相同的文件夹。我的建议是,只需将C:\ HardDrive1移动到c:\ HardDrive1000文件夹到一个c:\ HardDrives文件夹,然后将结点/ mklink移动到。现在每个驱动器只需要一个驱动器,无论如何最多可以驱动26个驱动器(A到Z)
sinni800

@sinni,胡说八道。您可以根据需要指向同一位置的多个链接(无论是符号链接还是联结)。 (最后,两者都只是包含其目标的文本路径的重新分析点,没有深刻的魔法。因此,以及磁盘可以物理移动的事实,实现这种任意限制不仅是不必要的;它也是不可能的。)
grawity

@sinni,也是 强制性的 目标 文件系统是NTFS;符号链接和连接是指向任意文本路径的单向指针,虽然它们只能被创建 NTFS,他们可以指出 几乎任何东西(符号链接甚至可以指向网络共享)。
grawity

@sinni,澄清我的第一个评论:一个链接可以指向一个目标,但一个目标可以有 任何 指向它的链接数量。
grawity
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.