硬链接和符号链接的区别


文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。

 

 

 

Linux中的两种链接

Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。

硬链接

硬链接也可以认为是一个指向文件索引节点的指针,系统并不为它重新分配inode,

每添加一个一个硬链接,文件的链接数就加1, 删除一个则链接数减1。

。在允许创建目录硬链接的系统上,只有超级用户才能才能这样做。

(这些限制在POSIX中都不是强制性的)。

 

 硬链接的创建语法 : ln 存在的文件 新的文件

 SingleFile                ;新建一个空文件

 root root 0 Mar 30 17:48 SingleFile        SingleFile HardLinkFile

 root root 0 Mar 30 17:48 HardLinkFile     
-rw-r--r--  root root 0 Mar 30 17:48 SingleFile       #  "Hello"
 root root 6 Mar 30 17:49 HardLinkFile     
-rw-r--r--  root root 6 Mar 30 17:49 SingleFile        HardLinkFile                ;显示新文件中的内容 
 HardLinkFile              ;删除新文件(删除旧文件也是相同的)

 root root 6 Mar 30 17:49 SingleFile       

 

 

软链接(符号链接)

,其中包含对另一个 文件/目录 以 绝对/相对 路径形式的引用.

 软链接可以看做是对一个文件的间接指针,相当于windows下的快捷方式。

创建文件的软链接时,软链接会使用一个新的inode,所以软链接的inode号和文件的inode号不同(表明他们是两个不同的文件),

当我们再次创建这个文件时(文件名与之前的相同),软链接又会重新指向这个文件(inode号与之前的不同了),而硬链接不会受其影响.

当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,

而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

 

软链接的创建语法 : ln -s 存在的文件 新的文件

 SingleFile                                ;新建一个空文件
 SingleFile SoftLinkFile                   ;创建一个软链接

 root root  0 Mar 30 18:28 SingleFile                      
rwxrwxrwx  root root 10 Mar 30 18:28 SoftLinkFile  SingleFile                                ;删除源文件(或者移动到别的位置)

rwxrwxrwx  root root 10 Mar 30 18:28 SoftLinkFile #  "World"
total 4 root root  6 Mar 30 18:29 SingleFile                      
rwxrwxrwx 1 root root 10 Mar 30 18:28 SoftLinkFile  SingleFile 
# 

 

 硬链接 和 软链接 的区别

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------

参考资料:

http://blog.chinaunix.net/uid-23208702-id-75180.html

http://blog.csdn.net/zengmuansha/article/details/7814496

http://en.wikipedia.org/wiki/Soft_link

http://blog.sina.com.cn/u/2827812045

相关内容