linux和win7下的软链接和硬链接

来源:互联网 发布:a股进msci的意义 知乎 编辑:程序博客网 时间:2024/05/16 06:46

<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/



0 0
原创粉丝点击