硬链接到底有什么用?【Linux】

291 阅读2分钟

前言

在学习了硬链接和软链接之后,我知道了软链接是可以作为快捷方式使用的,那么硬链接有什么用呢?

一、什么是硬链接

指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬链接。

(1) 硬链接,以文件副本的形式存在。但不占用实际空间。

(2) 不允许给目录创建硬链接。

(3) 硬链接只有在同一个文件系统中才能创建。

(4) 删除其中一个硬链接文件并不影响其他有相同inode号的文件。

二、如何实现硬链接

命令 ln

下面我创建了一个myfile的文件,往里面写入了一些数据。 并指定它硬链接到本目录下的myfile.hard。 查看myfile.hard,可以发现内容与myfile一致。 在这里插入图片描述

使用 ls -il 命令,可查看到两个文件的inode是一样的,由此可见硬链接与目标文件是同一文件。 在这里插入图片描述

三、硬链接的使用场景

硬链接可以实现跳转到上级目录

下面我创建了一个mydir的目录,进入到目录中,可以发现有.和..两个隐藏文件。

我们都知道 . 是当前路径, . . 是上级目录,那么是为什么呢?

返回到上级目录,可以观察到blog目录中mydir的inode与mydir中 . 文件的inode相同, 其实这里的 . 就是mydir的硬链接。

我们还可以观察到一个现象,mydir中 . . 的inode与blog中 . 的inode相同, 表明 . . 是blog的硬链接,也就是上级目录。

通过使用 . . 即可进行上级目录的操作,而不必使用上级目录的绝对路径。

在这里插入图片描述

总结

硬链接可以实现跳转到上级目录等等一些功能,实现相对路径的一些功能,但在我们自己编程当中使用的较少。