在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盘空间就释放出来。

其实这个东东很有趣的,因为有时候,你可以用这种方式创造非常便捷的访问方式.比如,你把你常用访问的目录都这样硬连接过来到一个目录下,这种方式同快捷方式是不同,它是同真实目录的一样的。或者可以把不同分区的目录连接过来的.我就是这样的,可以建立一个共享目录,把相似的资源(分别在不同分区)硬连接过来,为啥这么办,因为原来的空间不够,或者文件分配问题。

更多应用还等待大家慢慢发掘。