硬连接和软连接的区别

本文解析了Linux系统中的硬链接和软链接的区别与联系。硬链接为文件建立别名,不增加inode,二者共用同一个inode;软链接则创建指向源文件的新文件,包含源文件路径,若源文件被删除,软链接将失效。

在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode 。软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和windows 下的快捷方式的那个文件有很接近的意味)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录“)

硬连接是不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。
硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件
软链接可以跨文件系统,硬链接不可以;软链接可以对一个不存在的文件名(filename)进行链接(当然此时如果你vi这个软链接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);软链接可以对目录进行连接,硬链接不可以。两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建软链接。

### 连接硬连接区别 在 Linux 文件系统中,连接(symbolic link)硬连接(hard link)都是用于创建文件的额外入口的方式,但它们的工作机制特性存在显著差异。 #### 硬连接 (Hard Link) 硬连接是指向同一 inode 的多个文件名。这意味着当创建一个硬连接时,实际上是为现有文件增加了一个新的目录条目,这些条目共享相同的 inode 数据块[^1]。以下是硬连接的主要特点: - **inode 共享**:硬连接与其源文件共享同一个 inode 号,因此任何通过其中一个名称对文件的操作都会反映到其他名称上。 - **不可跨文件系统**:硬连接无法跨越不同的文件系统创建,因为不同文件系统有不同的 inode 编号空间[^4]。 - **不影响原始文件**:即使删除了原始文件,只要还有至少一个硬连接存在,文件的数据仍然保留并可通过剩余的硬连接访问。 示例命令如下: ```bash ln source_file hard_link_name ``` #### 连接 (Symbolic Link) 连接是一种特殊类型的文件,其中存储的是目标文件或目录的路径信息。它是独立存在的文件实体,具有自己的 inode 权限设置[^2]。以下是连接的关键特征: - **路径指向**:连接内部保存的是目标文件或目录的位置路径,而不是直接关联到其 inode。 - **可跨文件系统**:由于只是记录路径字符串,所以它可以轻松地横跨不同的文件系统工作。 - **依赖于目标文件的存在**:一旦目标文件被移除或者重命名,则此连接会成为悬挂链接(dangling link),即无效状态[^3]。 创建连接的例子: ```bash ln -s source_file symbolic_link_name ``` 综上所述,虽然两者都能提供到达某个特定资源的新途径,但在实际应用中有各自适用场景以及局限性需要注意。 ### 总结对比表 | 特性 | 硬连接 | 连接 | |---------------------|----------------------------|------------------------------| | 是否共享 inode | 是 | 否 | | 删除原文件的影响 | 数据仍存留 | 链接失效 | | 支持跨文件系统操作 | 不支持 | 支持 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值