美文网首页
软链接和硬链接的区别

软链接和硬链接的区别

作者: YYL07 | 来源:发表于2017-10-26 16:18 被阅读0次

在Linux上,一个文件被分为两部分(如图一):用户数据 (user data) 与元数据 (metadata)。
inode号:即索引节点号, 它是文件元数据的一部分,也是文件的唯一标识而非文件名。

图一

通过文件名打开文件时:

图二

硬链接

  • 文件有相同的 inode 及 data block;
  • 只能对已存在的文件进行创建;
  • 不能交叉文件系统进行硬链接的创建;
  • 不能对目录进行创建,只可对文件创建;
  • 删除一个硬链接文件并不影响其他有相同 inode 号的文件。

创建硬链接,相当于多了一个文件别名。如果创建硬链接newfilename的话,如下图:

图三

接下来,我们用命令来验证一下。

1.在当前目录下,只有filename文件,如图:

命令: ll -i  (等同于: ls -li)
图四

注意,此时filename文件编号为521664。

  1. 然后在当前目录创建filename文件的硬链接,newfilename, 再次查看文件:


    图五

此时可以发现,filename和newfilename编号一致,权限也一样。

软链接

软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块(见图六)。因此软链接的创建与使用没有类似硬链接的诸多限制:

  • 软链接有自己的文件属性及权限等;
  • 可对不存在的文件或目录创建软链接;
  • 软链接可交叉文件系统;
  • 软链接可对文件或目录创建;
  • 创建软链接时,链接计数 i_nlink 不会增加;
  • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。
图六

然后我们再来创建一个软链接 softlink-file 看看区别:

图七

会发现,出现不同的文件编号, 并且明确的看到。softlink-file 指向 filename。

本文参考来源:理解 Linux 的硬链接与软链接
推荐文章:https://www.jianshu.com/p/dde6a01c4094

相关文章

  • 链接文件

    ln 软链接和硬链接的区别

  • 软链接和硬链接的区别

    在Linux上,一个文件被分为两部分(如图一):用户数据 (user data) 与元数据 (metadata)。...

  • M. linux之软链接和硬链接

    1.对文件创建软链接 2.对文件创建硬链接 软链接硬链接复制的区别 1.硬链接实际上是为文件建一个别名,链接文件和...

  • 经典问题

    1. 软链接和硬链接特性及区别 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为软链接,...

  • Linux硬链接和软链接的区别

    不可以对目录做硬链接,可以对目录做软链接 软链接可以跨文件系统,硬链接不能跨文件系统 硬链接文件名称指向源文件的i...

  • 硬链接与软链接区别

    硬链接与软链接区别: 文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) ...

  • 简谈linux中软链接和硬链接的区别

    linux中软链接和硬链接的区别: 在linux系统中,链接分为2种:一种被称为硬链接(Hard Link),另一...

  • 硬链接和软链接

    最近的一个项目,做的是开发者平台文件的下载。业务本身没有什么技术难度,但就在项目测试过程中发现,iOS 平台部分文...

  • 软链接和硬链接

    修改硬链接会影响源文件的内容,也会影响软链接的内容;修改源文件也会影响硬链接和软链接; 删除源文件,输入命令:ll...

  • 硬链接和软链接

    在Linux中,文件由两部分组成:用户数据(user data)和元数据(meta data)。用户数据,即文件数...

网友评论

      本文标题:软链接和硬链接的区别

      本文链接:https://www.haomeiwen.com/subject/apvmuxtx.html