加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长资讯 > 评论 > 正文

Linux的软连接和硬链接

发布时间:2021-05-01 10:23:29 所属栏目:评论 来源:互联网
导读:一切皆文件,所以这个问题很好回答:目录也是文件。目录中记录的是目录下文件名。那既然是文件,如果在创建目录的时候,与当前目录下的文件或目录重名,就肯定会创建失败。 好了,既然搞清楚了目录的概念,我们接着往下看。 硬链接和软连接区别? 在Linux中表

“一切皆文件”,所以这个问题很好回答:目录也是文件。目录中记录的是目录下文件名。那既然是文件,如果在创建目录的时候,与当前目录下的文件或目录重名,就肯定会创建失败。

好了,既然搞清楚了目录的概念,我们接着往下看。

硬链接和软连接区别?

在Linux中表示一个文件的方式是通过两个部分来分别表示的:用户数据(user data)与元数据(meta data)。什么是用户数据呢?用户数据就是记录真实文件内容的数据,这些数据是存放在一个个大小相等的文件数据块中(data block)。

元数据呢?其实就是这个文件的附加信息属性,例如:创建时间,文件大小等等这类信息。我们用索引号(inode)来表示每一个不同文件的元数据(当然inode也是元数据的一部分)。在Linux中,inode才是表示文件的***标识,而不是文件名。下图展示了怎样通过文件名来找到文件内容的。注意:元数据中并不包含文件名。文件名只是为了方便用户识别和记忆罢以创建硬链接。硬链接的inode是相同的,但是文件名不同,所以它有一些特性:

  1. 文件有相同的inode和data blocks;
  2. 不能对不存在的文件创建硬链接
  3. 不能跨文件系统创建(因为在各自文件系统下inode是***的,当跨文件系统就会出现inode重复的情况发生)
  4. 不能对目录创建,只能对文件进行创建
  5. 如果删除了一个硬链接文件,并不会影响其他的同inode文件(inode中存在链接计数器,删除一个硬链接相当于计数器减一,反之加一。直到为0,删除inode)体的解释可以参考硬链接的5点特性。

    什么是软链接?

    软连接就和硬链接完全不同,软连接是用户数据(data blocks)中记录的是另一个文件的路径名的指向。可以理解为软连接其实就是一个普通的文件,只是他的内容非常的特殊。所以软连接有他自己的inode号以及data blocks。那我总结下软连接的特性:

    1. 软连接有自己的文件属性
    2. 可以对不存在的文件创建
    3. 软链接可以跨文件系统
    4. 软链接可以对目录创建
    5. 软链接创建不会造成链接计数器增加,因为就不是同一个inode
    6. 若链接的文件被删除了,该链接就是没有意义了,但是也可以重新创建。

    下图展示下软链接的访问过程:

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读