Linux中的软硬链接文件详解

[复制链接]
发表于 2025-12-30 18:30:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
概述

在Linux文件体系中,软毗连(Symbolic Link)和硬毗连(Hard Link)是两种告急的文件链接方式。它们都可以创建指向类似文件内容的多个“链接”,但在实现方式和特性上有所差别。
1. 硬毗连(Hard Link)


      
  • 概念:硬毗连是同一个文件在文件体系中的多个目次项,本质上是给同一个inode分配多个文件名。全部硬毗连都指向同一个inode,即同一份数据。  
  • 特点:
         
    • 硬毗连与目标文件共享同一个inode,因此只在同一文件体系内有效。   
    • 删除目标文件或硬链接文件不会影响其他硬链接,只有当全部硬毗连被删除后,文件数据才会真正被删除。   
    • 硬毗连只能指向文件,不能指向目次。   
      
  • 创建下令:使用ln [目标文件] [链接文件]来创建硬毗连。比方:
    1. ln /home/user/file.txt /home/user/hard_link_to_file
    复制代码

2. 软毗连(Symbolic Link)


      
  • 概念:软毗连是一种指向文件或目次的引用,类似于Windows中的快捷方式。软毗连文件包罗目标文件的路径,当访问软毗连时,体系会主动跳转到目标文件。  
  • 特点:
         
    • 软毗连是一个独立的文件,具有本身的inode(索引节点)。   
    • 软毗连可以跨文件体系创建,即可以链接到差别分区上的文件。   
    • 软毗连可以指向文件或目次。   
    • 假如目标文件被删除,软毗连会失效,变成“断链”(Broken Link)。   
      
  • 创建下令:使用ln -s [目标文件或目次] [链接文件]来创建软毗连。比方:
    1. ln -s /home/user/file.txt /home/user/link_to_file
    复制代码

总结

     特性    软毗连    硬毗连              是否共享inode    否    是          跨文件体系    支持    不支持          指向范例    文件或目次    文件          失效情况    目标文件删除则失效    目标或链接删除不影响其他    软毗连适适用于快捷访问差别位置的文件或目次,硬毗连则更得当须要在同一文件体系中保存文件副本的场景。
原理

inode源码

以下结构体对应文件的inode的源码,此中不相干的部分已省略
  1. struct ext2_i
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表