跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

深入理解 Linux 软链接与硬链接

Linux 软链接与硬链接是文件系统中的重要概念。软链接类似快捷方式,拥有独立 inode 和路径存储,源文件删除会导致悬空链接。硬链接共享同一 inode 和引用计数器,删除单个文件不影响数据,但无法对目录创建硬链接以防死循环。通过 ln 命令可管理两者,硬链接常用于路径定位,软链接常用于简化命令调用或跨文件系统引用。

鲜活发布于 2026/1/30更新于 2026/6/1620 浏览
深入理解 Linux 软链接与硬链接

软链接

建立软链接

ln -s 文件名 链接名称

示例:

ln -s file.cpp sort-file

查看 inode 信息:

ls -li

图片

理解软链接

软链接是一个独立文件,有自己的 inode 和数据块,数据块存放链接文件的路径名。相当于 Windows 的快捷方式。

通过 ls -li 可查看两者 inode 不相同。

图片

注意事项

  • 删除源文件会导致软链接悬空
  • 移动源文件会导致链接失效
  • 修改软链接即修改源文件内容

软链接应用

运行程序时若路径复杂,可通过软链接简化调用。

例如将绝对路径软链接进系统目录:

sudo ln -s /home/jib/1010/sort-hard-link/bin/myexe/myexe /usr/bin/myexe

此后只需输入 myexe 即可运行。

图片

图片

图片

硬链接

创建命令:

ln 文件名 硬链接名称

加 -s 为软连接,不加则为硬链接。

图片

理解硬链接

文件权限后的数字表示指向该 inode 的文件个数(引用计数器)。每个 inode 内部都有引用计数器,显示几代表多少文件指向该 inode。

前提:目录名存放的是文件名和 inode 编号的映射。

查看 inode:

ls -li

图片

可以看到 hard-text 和 text.cpp 的 inode 值相同。硬链接本质上是在特定目录的数据块中新增文件名和 inode 的映射关系,因此两个文件指向同一个 inode。

平时删除文件时,inode 不会被立即释放,只是将对应的 inode 计数器减 1,若最后变为 0,才会被释放。

硬链接应用

硬链接应用较少,最大作用是路径定位,方便路径切换。

正常来说,文件名对应自己的 inode 计数器是 1。但新建的目录 dir 天生就是 2,因为有隐藏文件。

进入目录查看:

ls -lia

图片

发现目录里面有天生的文件 . 指向当前 inode,.. 指向上一级目录。

分析计数:自身的文件名 + 进入该文件有 . 文件 + 新建两个目录文件各有 .. 指向,故为 4。判断一个目录文件里有多少新建目录,只需计数器减 2 即可。

可以给目录文件建立硬链接吗?答案是否定的。因为会导致路径死循环。

图片

查找某个文件时,若在某个节点硬链接了 root,查找到该节点时会进入这个硬链接目录文件,导致又回到了 root 文件,形成死循环。

图片

. 和 .. 难道不是硬链接了目录文件吗?确实是这样,但我们不会用 . 和 .. 来查找文件,只用来进行上下目录切换。如果没有这两相对路径,操作时就一直要写绝对路径,非常麻烦。

目录

  1. 软链接
  2. 建立软链接
  3. 理解软链接
  4. 注意事项
  5. 软链接应用
  6. 硬链接
  7. 理解硬链接
  8. 硬链接应用
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Linux 网络编程入门:Socket 编程详解
  • Seedance 2.0 飞书机器人集成安全合规与零信任加固方案
  • 嵌入式系统 Newlib 编译指南
  • Vue3 常用面试题总结与代码解析
  • 空洞卷积(Dilated Convolution)网络架构与 PAMAP2 数据集实验分析
  • 二分查找实战:旋转排序数组最小值与缺失数字
  • 轻小说机翻机器人:架构设计与快速部署
  • 利用 GPT 快速梳理 Python 知识脉络与入门指南
  • Linux 基础 IO:软硬链接详解
  • YOLO12 实时目标检测实战:nano 版部署与使用指南
  • Linux 基础 IO:深入理解软链接与硬链接
  • Spring Boot 考试安排管理系统设计与实现
  • Linux 基础操作与 Java 项目部署实战
  • Elasticsearch 全文检索实战:匹配、短语、范围查询及条件删除
  • 前端实现 Word 文档在线预览的实用方案
  • 【论文阅读】DreamZero:World Action Models are Zero-shot Policies
  • MySQL 与 PostgreSQL 核心差异深度对比
  • 2026 年国家自然科学基金 AI 使用声明撰写位置指南
  • Linux 基础使用与 Java 项目部署指南
  • Linux 基础操作与 Java 项目云端部署实战

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online