软链接与硬链接

一、Linux下的文件与目录

我们知道Linux下一切皆文件,所以我们为了方便于对这些文件的管理,便引入了目录的概念。目录可以使文件被分类的管理,从而使Linux的系统文件形成一个层状的目录树。在Linux下根目录的介绍一文中也展示了根目录的文件的作用。
但是在Linux下并不区分目录和文件,目录只是记录了其他文件名的文件,所以创建相同目录的时候会创建失败。

二、什么是链接

链接实际上是一种文件共享的方式,在Windows下采用的是快捷方式。在Linux中通常我们为了把一些目录层次比较深的文件链接到更容易访问的目录中,所以这时候我们便需要链接。

三、inode号

文件都有文件名与数据,在 Linux 上被分成两个部分:用户数据 与元数据 。

  • 用户数据:即文件数据块 (data block),数据块是记录文件真实内容的地方;
  • 元数据:是文件的附加属性,如文件大小、创建时间、所有者等信息。

在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。

在Linux下我们可以采用ls -i命令或者stat命令查看inode号

这里写图片描述

如上图,最左边一列便是文件的inode号。

但更好的方法是使用find命令,不但可以帮我们查找某文件的软链接,还可以用于查找拥有相同的inode的所有硬链接。

四、软链接与硬链接

(1)软链接

命令:

  • ln -s 源文件名 链接名

作用:

  • 保存了代表的文件的绝对路径,是另外一种文件,其中包含了另外一个文件的位置信息,在硬盘上有独立的区块,在调用时只需要替换自身的路径。

注意:

  1. 软链接有自己的文件属性和权限。
  2. 可对不存在的文件或目录创建软链接。
  3. 软链接可对文件或目录创建。
  4. 软链接可交叉文件系统。
  5. 创建软链接时,链接计数i_nlink不会增加。
  6. 删除软链接并不影响被指向文件,但如果指向的源文件被删除,则此时的软链接被成为死链接,但是如果被指路径上的文件被重新创造,此时软链接可恢复为正常的软链接。

(2)硬链接

命令:

  • ln 源文件名 链接名

作用:

  • 允许一个文件拥有多个有效路径名,这样当我们创建硬链接到重要的文件的时候,可以出现防止被误删的功能。只有当我们把源文件的所有链接都删除完毕,文件的数据块和目录才会被删除。
  • 也就是说,当我们删除一个已经被硬链接过的文件,需要把它关联的所有硬链接文件全部删除。

注意:

  1. 文件拥有相同的inode和data block。
  2. 只能对已经存在的文件进行创建。
  3. 不能对目录进行创建,我们只可对文件进行创建。
  4. 删除一个硬链接文件并不影响其他拥有相同inode号的文件,所以删除文件要把所有链接全部删除。
  5. 不能对交叉文件系统进行硬链接创建。

五、测试说明

(1)硬链接

当我们touch一个文件并对文件写入内容:

这里写图片描述

我们创建一个硬链接,我们发现它们两个inode号是一样的。

这里写图片描述

此时我们修改我们创建的硬链接文件,我们发现我们原始创建的Myfile文件内容也被修改了,此时可以说明硬链接创建的链接文件是同一个文件。

这里写图片描述

(2)软链接

此时我们创建一个软链接,我们发现它的inode号与其他两个文件并不一样。

这里写图片描述

当我们删除原始的Myfile文件,此时获取硬链接创建的文件可以看到,但是当我们查看软链接的内容,却发现无法查看。

这里写图片描述

我们重新向软链接文件写入内容,此时软链接文件又出现了:

这里写图片描述

查看软链接的内容既是我们刚才写入的内容:

这里写图片描述

这就说明当我们写入软链接时,系统自动将其路径替换为所代表的绝对路径,并且直接访问那个路径了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值