<span style="font-size:14px;">在开发过程当中,突然遇到一个问题,因前后台项目是分开的,导致后台上传的图片等在前台访问不到,
后面发现可以使用软链接来实现。在这里记录一下</span>
一、软链接和硬链接的基本介绍(http://blog.163.com/lgh_2002/blog/static/4401752620122394011132/)
硬连接指向的是节点(inode),是已存在文件的另一个名字,修改其中一个,与其连接的文件同时被修改;对硬链接文件进行读写和删除操作时候,效果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容。这时,系统就“忘记”了它曾经是硬链接文件,而把他当成一个普通文件。
硬链接文件有两个限制:
1、不允许给目录创建硬链接;
2、只有在同一文件系统中的文件之间才能创建链接。
软连接指向的是路径(path),软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,还可以链接不同文件系统的文件,和win下的快捷方式差不多。 软链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现象"),链接文件甚至可以循环链接自己,类似于编程语言中的递归。
二、Win7中的软链接(http://www.mzone.cc/article/619.html)
之前一直苦于windows下没有类似的功能,导致有些地方很不方便,不过进入windows vista和win7时代后,这样的功能也被附带在windows中了,通过win7操作系统中的mklink命令就可以创建类似的软链接了。
<span style="font-size:14px;">D:\temp>mklink /?
创建符号链接。
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件
符号链接。
/H 创建硬链接,而不是符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径
(相对或绝对)。</span>
上面的是mklink命令的帮助信息,可以看到mklink可以创建目录和文件链接。
比如D:\temp目录下有目录dir1,我想在当前目录下创建到dir1目录的软链接,可以使用如下命令来操作:
<span style="font-size:14px;"> mklink /D dir2 dir1
mklink /J dir3 dir1</span>
文件当然也可以创建软链接了,而且还可以创建硬连接,比如d:\temp目录下有abc.txt文件,我要创建到这个文件的软链接的命令如下:
<span style="font-size:14px;">mklink /H abc2.txt abc.txt</span>
三、linux中的软链接(http://biyutong.iteye.com/blog/1445699)
在linux系统中,可使用如下命令查看软链接的帮助
<span style="font-size:14px;">[root@WEB_YQ_64_79 /]# ln --help</span>
ln -s sourcefile newfile
中的 sourcefile 就是源文件,newfile是链接文件名,其作用是当进入newfile目录,实际上是链接进入了sourcefile目录
ln sourcefile newfile是建立硬链接
删除软链接:
rm -rf b 注意不是rm -rf b/