windows 7 ”dir /a c:\” 发现有一条记录
2009/07/14  12:53         Documents and Settings [C:\Users]
C:\Users 是原目录, C:\Documents and Settings 是连接到 C:\Users 上的,也许微软觉得 C:\Documents and Settings 太长太难记了所以在 windows 7 /vista 中改为 C:\Users 了,但又怕部分老软件有兼容问题所以还留个 C:\Documents and Settings 连接目录。该功能类似 linux 下的 link 功能,在 windows 7/vista 下为 mklink.exe
cmd 下运行 mklink /? 可查看该命令帮助显示如下。
C:\>mklink
创建符号链接。
MKLINK [[/D] | [/H] | [/J]] Link Target
        /D      创建目录符号链接。默认为文件
                符号链接。
        /H      创建硬链接,而不是符号链接。
        /J      创建目录联接。
        Link    指定新的符号链接名称。
        Target  指定新链接引用的路径
                ( 相对或绝对)
注意:
使用 /D 建立的连接是类似于 linux 下的软连接,不占存储空间;
使用 /J 建立的连接类似于 Linux 下的硬连接,占用同源文件一样的存储空间;
Link Target 文件夹内容一模一样,如果你对其中任意一个文件夹里面的内容做修改,另一个也会相应的改变。这个功能本来 10 年前就应该出现在 windows 系统下,到今天才出现真的有点遗憾,但是总算是有了。通过该 mklink 现在 windows 系统也可以实现系统文件和用户文件分离了。
通过建立符号链接 (symbolic) 磁盘空间使用量没有改变哦,因为只是实现连接罢了,并不是将原文件复制以及同步。使用连接目录时就像使用原目录一样,就像实实在在有这个目录一样,程序不会发现连接目录与普通目录有何不同,这是一般的文件夹快捷方式是不行的。
 
应用举例:
假设 C: 盘空间不够,我们可以将中的一些软件移动到 D:\app1 (移动时要保证这个软件没有文件处于正在使用的锁定状态),然后删除 C:\Program Files\app1 目录,之后做一个到 C:\Program Files\app1 JUNCTION 目录连接,问题就圆满解决了。命令为:mklink /J  " C:\Program Files\app1" "D:\app1" 。这样你的C盘空间就释放出来。
其实这个东东很有趣的 , 因为有时候 , 你可以用这种方式创造非常便捷的访问方式 . 比如 , 你把你常用访问的目录都这样硬连接过来到一个目录下 , 这种方式同快捷方式是不同 , 它是同真实目录的一样的。或者可以把不同分区的目录连接过来的 . 我就是这样的 , 可以建立一个共享目录 , 把相似的资源 ( 分别在不同分区 ) 硬连接过来 , 为啥这么办 , 因为原来的空间不够 , 或者文件分配问题。
  更多应用还等待大家慢慢发掘。
参考文档:http://bbs.pcbeta.com/thread-419389-1-1.html