Linux的软链接与硬链接

Linux的软链接与硬链接

内容

Linux中的软链接与硬链接解析:以Python解释器路径为例

场景实例分析

在Linux系统中,执行ls -l命令时出现的->符号代表软链接关系。根据提供的输出示例:

lrwxrwxrwx 1 root root 10 Aug  8  2024 /bin/python3 -> python3.10
lrwxrwxrwx 1 root root 10 Aug  8  2024 /usr/bin/python3 -> python3.10

这两个软链接均指向python3.10,由于使用的是相对路径,实际的可执行文件存在于软链接所在目录中,即/bin/python3.10/usr/bin/python3.10。系统通过这种方式实现多版本解释器的灵活管理。


硬链接与软链接的异同

共同点

  1. 两者均可作为文件路径的间接引用,提供文件访问的便捷性。
  2. 均通过ln命令创建(硬链接用ln 源文件 目标,软链接用ln -s 源文件 目标)。

核心差异

特性 硬链接 软链接
本质 与源文件共享同一inode,等同于源文件的别名 独立文件,记录源文件的路径(类似快捷方式)
跨分区支持 仅限同一文件系统 支持跨分区及网络存储
目录链接 系统默认禁止创建 允许对目录创建链接
源文件删除影响 文件数据仍可通过硬链接访问(引用计数归零后数据才删除) 链接立即失效,出现"断链"
文件属性 无特殊标识,与普通文件属性相同 文件权限位首字符显示l(如lrwxr-xr-x
存储内容 直接指向数据块的inode 存储源文件的绝对或相对路径
应用场景 文件备份保护、防止误删 版本切换、路径简化、跨存储设备引用

技术验证示例

  1. 查看inode

    ls -i /bin/python3.10 /bin/python3
    

    硬链接的inode相同,软链接的inode独立。

  2. 跨分区测试
    硬链接无法跨分区创建(报错Invalid cross-device link),软链接可自由指向其他存储设备。

  3. 删除影响验证

    • 删除硬链接的源文件后,其他硬链接仍能正常访问文件内容。
    • 删除软链接的源文件后,执行cat softlink会提示No such file or directory

通过理解软硬链接的机制,开发者可更高效地管理系统环境(如多版本编程语言共存)、设计高可用存储方案,同时避免因误操作导致的数据丢失风险。

本文作者:Gold_stein

本文链接:https://www.cnblogs.com/smartljy/p/18736614

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Gold_stein  阅读(6)  评论(0编辑  收藏  举报
历史上的今天:
2024-02-25 P8669 [蓝桥杯 2018 省 B] 乘积最大
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 逃离地面 RAD & 三浦透子
逃离地面 - RAD & 三浦透子
00:00 / 00:00
An audio error has occurred.

作词 : 野田洋次郎

作曲 : 野田洋次郎

空飛ぶ羽根と引き換えに 繋ぎ合う手を選んだ僕ら

それでも空に魅せられて 夢を重ねるのは罪か

夏は秋の背中を見て その顔を思い浮かべる

憧れなのか、恋なのか 叶わぬと知っていながら

重力が眠りにつく 1000年に一度の今日

太陽の死角に立ち 僕らこの星を出よう

彼が眼を覚ました時 連れ戻せない場所へ

「せーの」で大地を蹴って ここではない星へ

行こう

もう少しで運命の向こう もう少しで文明の向こう

もう少しで運命の向こう もう少しで

夢に僕らで帆を張って 来たるべき日のために夜を超え

いざ期待だけ満タンで あとはどうにかなるさと 肩を組んだ

怖くないわけない でも止まんない

ピンチの先回りしたって 僕らじゃしょうがない

僕らの恋が言う 声が言う

「行け」と言う