当前位置: 首页 > 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.lryc.cn/news/576670.html

相关文章:

  • 复杂驱动开发-TLE9471的休眠流程与定时唤醒
  • 断路器、空气开关、漏电保护器
  • 【扩欧应用】同余方程
  • 概述-4-通用语法及分类
  • 领域驱动设计(DDD)【21】之值对象的优势
  • WebRTC(十二):DTLS
  • PowerBI 柱状图显示MoM销量环比示例,以及解决相同列值时设置柱子颜色的问题
  • 【转】PostgreSql的镜像地址
  • 一个简单测试Deepseek吞吐量的脚本,国内环境可跑
  • QTreeWidget 简单使用
  • web自动化测试常见函数
  • 西门子S7-200 SMART PLC:小型自动化领域的高效之选
  • 华为云鸿蒙应用入门级开发者认证 实验部分题目及操作步骤
  • 基于Uniapp+SpringBoot+Vue 的在线商城小程序
  • AI 在金融领域的落地实践:从智能风控到量化交易的技术突破与案例解析
  • 【Docker基础】Docker容器管理:docker stats及其参数详解
  • 使用asyncio构建高性能网络爬虫
  • 华为云Flexus+DeepSeek征文|基于Dify构建AI资讯语音播报工作流
  • Python pyserial库【串口通信】全面讲解
  • 从傅立叶级数到傅里叶变换和离散傅里叶变换及其逆变换:FS FT DFT IDFT
  • 华为云Flexus+DeepSeek征文 | 华为云ModelArts Studio实战指南:创建高效的AingDesk知识库问答助手
  • Java锁机制知识点
  • Java安装与使用教程
  • FPGA设计的上板调试
  • zookeeper Curator(2):Curator的节点操作
  • 移动端日志平台EMAS
  • 在C++中#pragma“可选预处理指令的作用“。
  • OpenCV图像噪点消除五大滤波方法
  • springboot+Vue逍遥大药房管理系统
  • Redis—主从复制