本帖最后由 addtool 于 2012-12-17 02:36 编辑
之说以谈到软链接,是因为本人用了云同步网盘,比如说,金山快盘。
我的快盘同步目录是E:\文档,E盘主要是放置文档,教程之类。而F盘放置的大多数是多媒体文件,包括电子书等。我对文件的分类比较规范,这主要是受知识管理影响。
到正题,我此时非常想将自己的电子书同步到网盘中,以便多平台阅读。不过,这时遇到一个问题,为了将电子书同步到网盘中,难不成我也要将F:\书籍复制或剪切一份至同步目录?若这样的话,我岂不是违背了文件规范分类的初衷?
那怎么办呢?
那就试着创建一个链接吧,目前已知的有硬链接和软链接两种。
我们需要创建一个软件去解决上边的问题,至于为何选择软链接,下文会给出解答。来,我们给F:\书籍创建一个软链接,此链接指向的是F:\书籍,将此软链接复制到E:\文档目录下,快盘就会认为E:\文档下也存在一个书籍目录,且里边也包含9G多的书籍数据,那么这些书籍无需再移动了,也能同步了,同时也节省了空间。
在此之前,我们了解一下,何为软链接。我先用一个简单的描述吧:先假设我们在桌面创建一个快捷方式,我们称之为链接,链接只是一个普通快捷方式。我们对其进行的删除复制剪切等,都不会影响源文件。你说是不是呢?那软链接又是什么呢?软链接也是一个快捷方式,只不过它链接的是位于NTFS,FAT32等文件系统内索引文件,当你用软件读取这个快捷方式时,软件会认为,它就是一个真实的文件夹。其实不然,它只是一个链接而已。(请原谅我如此解释,只要大家能明白就行)
那么上边,我们为什么不选择硬链接,却去选择软链接,这又是为何?那么我们需要一两个例子。
硬连接指向的是节点(inode),而软连接指向的是路径(path) 。
硬链接
最初的文件名与所有的硬链接地位是对等的,比如为源文件 a 建立了硬链接 b、c、d。那么a、b、c、d之中只要有一个文件未删除,这个文件就可通未删除的名称访问的。你也可以认为每个文件都可认为至少有一个硬链接,就是说 a 也是一个硬链接。因此,如果我们删除硬链接文件的源文件a后,硬链接文件b、c、d仍然存在,而且保留了愿有的内容。这时,系统就“忘记”了它曾经是硬链接文件,而把他当成一个普通文件。
软链接
软链接特性上有些类似于快捷方式,比如为源文件 a 建立了软链接 b、c、d。删除软链接b、c、d都不会对源文件a构成影响。但是只要删除了 a,软链接b、c、d就不可用了。当然了,windows 下的快捷方式只能在资源管理器中有用,它只是一个 lnk 文件,如果是一个目录的快捷方式,它是不能通过 cd 命令或路径进入。
经资料查证,得知:硬链接却是实在在的的拷贝,意思是说源文件是1G,那么创建3个硬链接在不同目录,还需占用3G。硬链接也存在两个限制,即不允许给目录创建硬链接和只有在同一文件系统中的文件之间才能创建链接。同时在进行删除时,必须将源文件和所有链接文件删除,才能彻底删除。软链接软连接只产生了10字节的快捷而已,它是记录文件路径的一种特殊文件。它可以是任意文件或目录,可以链接不同文件系统的文件。同时删除源文件,所有链接文件不再有效。删除链接文件,源文件不会受到影响。
要说明的是,硬链接和软链接这两种方式,链接文件与被链接文件(源文件或源目录)之间的修改,删除是双向同步的。
如上所述,我们选择软链接。
如下是软链接(上文未清楚说明,也可称为符号连接,如图二)的创建过程,用到的软件是HardLinkShellExt。其实在Windows上创建软链接的软件还有Symlink Creator 1.1.1.3.,SymLinker,junction等。软件不重要,重要的是用软件的人和用软件的方法。
如下是我创建软链接之前和之后的文件夹占用大小。(注:第二个图片为E:\文档整个目录大小,不是书籍那个目录,标注有误)
看到了吧,创建软链接链接几乎不会占用你的空间的。
考虑到网友们会有疑惑。那我先做一个FAQ。
1、如果我删除E:\文档(即快盘同步目录)里边的书籍目录,那F:\书籍会不会也同时删除?
答:不会的。按照我上文所说,“F:\书籍”为源目录,“E:\文档\书籍”为软链接,其实你也可以当它是个文件夹,不过软链接删除是不会影响源目录的。但当你进入软链接“E:\文档\书籍”后进行删除,修改动作,就会与“F:\书籍”进行同步操作。反过来,操作“F:\书籍”里面的文件,也是与“E:\文档\书籍”同步操作的。
2、我创建的软链接可以随意移动吗?
答:不能。软链接是与源文件(或者源目录)一一对应路径的,如需移动,再创建一个才能用。如不信,大可一试。
谈到这里,大家是不是想试一试呢?欢迎大家在下边反馈。本人水平有限,也请大家指正。
ps:之前发了这篇文章,后来发现硬链接和软链接的概念自己给混淆了。于是查证了一些资料了,尽量不要误导诸位网友了。参考的资料在文章最后。
han_HardLinShellExt【附带汉化补丁】-addtool@kafan
http://pan.baidu.com/share/link?shareid=137573&uk=1258678829(刮开有奖)
本文软件来自PCbeta的wolfgangsk07。
部分资料,向这些作者致敬。
1、Windows系统创建软链接、硬链接的方法| Tower Jing::Thanksgiving
http://www.qiyeku.com/xinwen/1133934.html
2、Windows 下也能创建硬链接和符号(软)链接
http://rainbird.blog.51cto.com/211214/114015/
|