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

硬链接通过索引节点与目标文件关联,不占用额外空间。它们在同一文件系统内创建,不允许对目录创建。硬链接常用于实现文件的多命名,如在mydir目录中,.和..是其自身和上级目录的硬链接,提供路径导航功能。在编程中使用较少。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

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

一、什么是硬链接

指通过索引节点来进行连接。在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的硬链接,也就是上级目录
通过使用 . . 即可进行上级目录的操作,而不必使用上级目录的绝对路径
在这里插入图片描述

总结

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

### 硬链接与软链接的区别 #### 定义 在Linux系统中,存在两种不同形式的链接来帮助用户更便捷地管理文件:硬链接(Hard Link)和软链接(Symbolic Link),每种链接有着不同的特性和应用场景。 #### 文件结构差异 - **硬链接**是指向相同inode节点的不同文件名。这意味着当创建了一个新的硬链接到某个现有文件时,实际上并没有复制该文件的数据部分;相反,只是增加了一个指向同一数据块的新入口。因此,任何对其中一个副本所做的更改都会反映在其他所有副本上[^1]。 - **软链接**则是通过路径名称来进行间接引用的目标对象。它保存的是源文件或目录的位置信息——即一个文本串,而不是直接指向磁盘上的物理位置。如果目标被移动或删除,则相应的符号链接可能会失效成为“悬空”的状态[^2]。 #### 创建方式及其特性对比 - 对于**硬链接**而言,默认情况下`ln`命令会生成这种类型的链接。值得注意的是,无法为目录创建硬链接,并且这些链接仅限于在同一文件系统的范围内有效。此外,由于它们共享相同的inode编号,所以即使原始文件被移除,只要还有至少一条有效的硬链路存在,那么对应的文件内容就不会丢失[^3]。 - 使用带有`-s`选项参数执行`ln`指令可得到**软链接**的结果。这类链接允许跨越不同分区甚至远程主机间的资源关联操作。更重要的一点在于,即便所指向的对象当前并不存在,也可以成功建立这样的快捷方式,不过读取尝试将会失败直到真正建立了对应实体为止[^4]。 ```bash # 创建硬链接的例子 ln source_file hard_link_to_source # 创建软链接的例子 ln -s /path/to/source symbolic_link_name ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值