硬连接&软连接

硬链接
系统调用link在文件系统结构中将一个文件链接到另外一个新的名字上,也就是为被链接文件的索引节点创建一个新的目录项。
通过链接操作,一个文件可以有两个以上的不同名字,系统可以通过其中任意一个名字来访问文件。内核并不知道哪个名字是最初的文件名。
这种为索引节点创建新目录项的链接方式称为“硬链接”。
一个给定的索引节点可以有任意数目的硬链接,该索引节点一直存在于文件系统,直到所有的硬链接消失。
 

硬链接的局限性:
只能给文件建立硬链接,而不能给目录建立硬链接。即使. 和 .. 是系统给目录创建的硬链接,也不允许用户创建自己的硬链接。
硬链接不能跨文件系统。
 

符号链接
与 “硬链接”类似,也为新名字创建一个新的目录项,但是目录项中不含有索引节点号,而是含有从当前目录下访问被链接文件的相对路径名或绝对路径名。

当进程使用新名字访问文件时,内核首先找到新名字所在的目录项,发现目录项中含有符号链接标志,然后从目录项中读出被链接文件的路径名,按此路径名访问指定的文件。

符号链接是一种专门的文件类型,在这种文件类型中,链接通过名称引用另一个文件,而不是直接引用索引节点。

符号链接不阻止文件被删除;如果源文件被删除,那么符号链接仍然存在,但是不可用。

符号链接比硬链接更灵活
可以给任何类型的文件系统对象(包括目录)创建符号链接
因为符号链接的实现是基于路径的,所以符号链接可以跨文件系统

posted @ 2011-05-15 22:13  elwin  阅读(174)  评论(0编辑  收藏  举报