当前位置: 首页 > news >正文

Linux软连接和硬连接

Linux软连接和硬连接

1. 核心概念

类型

软连接(Symbolic Link)

硬连接(Hard Link)

本质

类似于 Windows 的“快捷方式”

是文件的另一个名字(指向同一个 inode)

存储方式

独立文件,存储目标文件的路径

直接指向原文件的 inode(数据块)

跨分区支持

✅ 支持(路径可跨磁盘)

❌ 不支持(必须同一文件系统)

原文件删除

软连接失效(变成“死链”)

硬连接仍可访问文件数据

文件属性

权限始终是 777(实际权限依赖原文件)

权限与原文件相同


2. 技术原理
  • inode(索引节点):Linux 文件系统的核心元数据,存储文件属性(权限、大小、数据块位置等)。
  • 硬连接:多个文件名指向同一个 inode(引用计数 +1)。
  • 软连接:独立 inode,其数据块中存储目标文件的路径字符串。

文件系统结构示例

原文件:/data/file.txt (inode 100)  
硬连接:/backup/file.txt → inode 100  
软连接:/tmp/link → 路径 "/data/file.txt"

3. 命令对比

操作

软连接

硬连接

创建

ln -s 原文件 软连接名

ln 原文件 硬连接名

查看

ls -l

显示链接路径(如 link -> file

ls -i

查看 inode 是否相同

删除原文件

rm 原文件

→ 软连接失效

rm 原文件

→ 硬连接仍有效


4. 通俗例子
  1. 硬连接:文件的“曾用名”
    • 你本名是 张三,后来改名叫 张老三,但身份证号(inode)不变。
    • 别人无论叫哪个名字,都能找到你(文件数据)。
    • 直到所有名字都被删除(引用计数归零),文件才真正消失。
  1. 软连接:便利贴指引
    • 你在办公室门口贴纸条:“资料在 3 楼 A 柜”。
    • 若有人搬走柜子(删除原文件),纸条就失效了。
    • 若纸条被撕掉(删除软连接),不影响原文件。

5. 使用场景

场景

推荐类型

原因

跨磁盘/分区引用文件

软连接

硬连接无法跨文件系统

需要备份防止误删

硬连接

原文件删除后数据仍存在

动态切换配置文件版本

软连接

修改链接目标即可(如 ln -sf v2.conf v1.conf

6. 注意事项
  • 硬连接不能链接目录(避免循环引用),软连接可以。
  • 修改硬连接文件会直接影响原文件(同一数据块),而软连接只是路径跳转。
  • 查找所有硬连接:find / -samefile 原文件

总结

  • 硬连接是“文件分身”,软连接是“指路牌”。
  • 需要备份?用硬连接需要灵活跳转?用软连接
http://www.lqws.cn/news/563293.html

相关文章:

  • 从 “慢如蜗牛” 到 “风驰电掣”:中欧跨境网络专线加速方案
  • spring-ai-alibaba DashScopeCloudStore自动装配问题
  • 论文阅读 Align before Fuse (ALBEF)
  • EXISTS 和 NOT EXISTS 、IN (和 NOT IN)
  • 每日算法刷题Day40 6.27:leetcode前缀和3道题,用时1h20min
  • 1.2 基于蜂鸟E203处理器的完整开发流程
  • 【大模型】Query 改写常见Prompt 模板
  • 【转】PostgreSql的镜像地址
  • InfluxDB 3 Core最后值缓存深度实践:毫秒级响应实时数据的核心引擎
  • Mysql架构
  • c++学习(五、函数高级)
  • 大事件项目记录11-文章分类接口开发-删除文章分类
  • Qt:QCustomPlot库简介
  • Vue基础(18)_收集表单数据
  • debian国内安装docker
  • 【经验】bitsandbytes安装-LLAVA-1.5库调试
  • 【数据标注师】分类标注
  • AD 学习笔记——第一章 系统的安装及参数设置
  • 一个简单测试Deepseek吞吐量的脚本,国内环境可跑
  • 印度和澳洲的地理因素
  • 西门子S7-200 SMART PLC:小型自动化领域的高效之选
  • 数据库(MYsql)
  • Qt-Advanced-Docking-System 关闭、禁止拖动、最大化按钮等设置
  • 从静态到动态:Web渲染模式的演进和突破
  • Spring Cloud:高级特性与最佳实践
  • 布林带的使用
  • 华为云Flexus+DeepSeek征文 |华为云ModelArts Studio集成OpenAI Translator:开启桌面级AI翻译新时代
  • Pytest自动化测试执行环境切换的2种解决方案
  • Linux基本命令篇 —— less命令
  • c++学习(四、引用)