快键方式(Shortcuts)想必大家都很熟悉了,值得说明的是,xp下的快键方式如果你把其所指向的文件移动或改名了,那么就无法识别了。但在win7下,无论你改名,移动(甚至跨区移动),快键方式都能找到文件。唯一有影响的是,就是如果你把目标文件删除,然后再原目录重新建立一个同名文件,再对这个文件进行移动的话,有可能快捷方式就不会识别了。也就是说,只要你不删除原始文件,那么你对原始文件怎么操作都无妨。
硬连接(Hard Links)(只用于文件,不可跨区)也很好理解,如果你学过C语言的话,可以把文件名当成指针,文件实体当成指针指向的对象,可以有多个指针指向同一个对象,如果没有任何指针指向这个对象了,就等于这个对象被删除了。如果一个文件实体有超过一个文件名的话,那么在属性里面就有一个连接属性显示当前的引用计数。
关于硬连接要注意的是excel和word文档的情况(我是用office2010在win7里进行测试的),对于word,假设一个文档有三个硬连接(原始的那个文件名也算一个硬连接),如果你修改了文档的内容并点击 了保存,那么你会发现这个文档的硬连接只“剩下”了一个(如果没有自动删除,可以刷新一下文件夹),其余的都被系统自动删除了。这是为什么呢,实际这和word的设计有关,首先,当你修改并保存一个word文件时,你的老文件会被删除,然后建了一个新的word文件来保存你修改后的内容(不过这个新的word文件的创建时间还是和老文件的一样),既然那个老文件已经被删除了,其硬连接自然也就没用了,也就被一起删掉了。也就是说,实际上唯一“剩下”的硬连接也不是那个老文件的硬连接了,而是新文件的硬连接。
对于excel文档,情况又有所不同,excel修改保存后,修改后的内容也是保存到新文件里面,但老文件不会删除,而是保留着,那么老文件的硬连接也就不会删除,也一并保留。
接下来说说符号连接(Symbolic Links)(可用于文件和目录,可跨区),这种东东类似于快键方式,但它是在文件系统的层面进行工作的。它和快捷方式有几点不同的地方,首先,它和目标对象之间可以使用相对路径,也可以使用绝对路径,默认使用相对路径,这可以在它的属性-》连接属性里面看到。然后如果目标对象移动或改名,则无法像win7快键方式那样自动识别。然后如果对其进行复制,则实际上复制的是其指向的目标对象。如果对其进行移动,倒是可以移动,但如果是使用相对路径定位目标对象,则移动后无法识别目标对象。另外,如果将其拖动到QQ里面进行发送的话,发送的是其指向的目标对象。另外要注意的是,在win7下对符号链接的复制或移动不会影响到目标对象,但xp下有可能会有影响,这点要注意。
最后还有一个目录连接(junction)(只用于文件夹,可跨区),它只能使用绝对路径指向目标对象,类似于目录的硬连接,但目标对象删除后其自身也失效。对目录连接进行操作,就相当于是对它所指向的对象所包含的东东进行操作,比如说,有个目录连接指向的目录内部有个文本,然后你复制粘贴这个目录连接,那么你会发现它所指向的目录里面多了一个文本的复件。如果你移动这个目录连接,那么你会发现目录连接所指向的目标对象内部的东东全部不见了,被移到了新的目录中。但删除目录连接并不会删除其指向的目标对象以及目标对象内部的东东。另外要注意的是,我所说的对目录连接的操作都是在win7中进行的,且使用的是相对路径,在xp系统或者绝对路径是否也是这样,就不一定了。
另外需要补充的是,如果你不是直接复制或移动符号连接或目录连接,而是复制或移动符号连接或目录连接所在的上级文件夹,那么情况又有所不同,具体如下:
移动符号连接的上级文件夹
和直接移动符号连接并没有什么不同。
复制符号连接的上级文件夹
如果符号连接是指向文件,那么和直接复制符号连接没有差别;如果符号连接是指向目录,那么复制后的新文件夹内原来的符号连接会用一个同名的空文件夹取代,原符号连接所指向的目录中的内容保持不变且复制一份到新目录中
移动目录连接的上级文件夹
和直接移动目录连接不同,这样做不会移动目录连接所指向的文件夹中的内容,只是单纯的移动目录连接,并且如果目录连接和其指向对象都位于你所移动的文件夹中(文件夹中可以包含子文件夹,目录连接和其指向对象可以位于不同的子文件夹中),移动后目录连接会自动修改其指向对象的绝对路径。
复制目录连接的上级文件夹
和直接复制目录连接不同,复制后会建立一个新文件夹,新文件夹内原来的目录连接会用一个同名的空文件夹取代,原目录连接所指向的目录中的内容保持不变且复制一份到新目录中
那么究竟应该使用哪一种连接好呢,首先看下面这个网页,然后我再来补充分析
上面这个网页的意思是使用符号连接可能会在远程访问的时候(比如映射局域网内的驱动器)出现异常,而目录连接就不会。
再看下面这个网页
这个网页实际上是前面那个网页中部分内容的补充,网页中所说的符号连接有四种,实际的意思如下,第一种:本地-》本地,指的是符号连接和目标对象都存储在本地电脑上;第二种:本地-》远程,指的是符号链接存储在本地,而其目标对象存储在远程电脑上;第三种:远程-》本地,指的是符号链接存储在远程,而其目标对象存储在本地电脑上;第四种:远程-》远程,指的是符号链接存储在远程,而其目标对象也存储在远程。实际使用时,最常遇到的就是第一种和第四种情况,第一种情况很好理解,就是你自己电脑上的符号连接访问你自己电脑上的目标对象,第四种可以假设你访问别人的网络驱动器上的符号连接,然后那个符号连接也是连到网络驱动器上的某个目标对象,像这种情况,你访问时就会出现提示“无法遵循符号链接,因为其类型已禁用”,此时你可以在具有管理员权限的命令行界面输入命令FSUtil Behavior Set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
综合上面的分析,对于目录,建议还是使用目录连接,但操作时注意不要直接对目录连接进行复制或移动。对于不会被删除的文件,使用硬连接即可。对于像excel或word这样的文件,可以首先将文件放置在一个文件夹中,然后对这个文件夹使用目录连接即可。
像我上面说的这样做有什么好处呢,首先,远程访问没有什么权限上的限制,然后,在安卓手机上的ES文件浏览器中访问共享文件时,硬连接和目录连接也能够被正常的访问,而快键方式和符号连接则不能被正常访问。