linux 硬连接和软连接

Posted on 2010-06-08 16:15  雅飞士  阅读(490)  评论(1编辑  收藏  举报

     在windows 中我们经常会用到快捷方式,这使得我们访问某个文件或目录很方便,但估计经常用到的还是为某个应用程序建立快捷方式,这样我们就不用每次访问应用程序所在的目录了,所以呢,快捷方式给我们带来了很大的方便。

   同样呢,在linux中,也有这样的方便。linux下称之为连接,上面说的快捷方式在linux下就是软连接。 而linux下的硬连接类似于windows下的副本,但它却是以隐藏文件的形式存在的。所以我们不太注意。

    在linux下,硬连接看起来像是复制,但其实不然。它确实复制了,但不是文件的全部,只是数据块的部分,其他的文件信息都没复制,因为它和源文件共用一个inode,这个inode就决定了 它不是复制,复制是两个inode。

    在linux的文件系统中,一个文件对应一个inode.但是一个inode可以对应好多个文件名,这就是硬连接产生的基础。硬连接产生后,对源文件的任何操作并不会影响硬连接。但是硬连接有一个限制,就是它不能跨文件系统创建,因为它创建的基础是inode ,在不同的文件系统中有不同的inode,所以就限制了它的创建范围。还有个限制就是普通用户不能对目录创建硬连接, 这个限制的原因我尚未明白,待后补充。

    创建软连接就是创建一个新的文件,因为它有自己的inode,而这个文件的数据就是 所指向的文件的 路径。软连接也叫符号连接,系统在访问此类文件时,可以判断这是一个符号连接,即而根据数据块的内容,就可以找到 所连接文件的访问入口,从而实现文件的访问。 符号连接可以跨文件系统,从而它的应用更多。  因为它的数据是个路径,所以当源文件删除或改名后,它也就失效了。

 

    相关命令:

  硬连接: ln 源文件  目标文件

     软连接: ln -s  源文件  目标文件

 

 

 

    更多信息请看:http://www.linuxsir.org/bbs/archive/index.php/t-59920.html

Copyright © 2024 雅飞士
Powered by .NET 9.0 on Kubernetes