Linux中的软链接与硬链接

一、软链接(Soft Link)

  1. 概念

类同与windos的快捷方式,给文件创建一个快速的访问路径,它依赖于原文件,与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块。

     2.特性

可对不存在的目录和文件创建软链接。

可以对存在的文件或目录建软链接。

可以跨文件系统创建软链接。

删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软链接被称为死链接(即dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

软链接创建时原文件的路径指向使用绝对路径较好,相对路径的话原文件移除后可能会成为死链接。

     3.软链接的创建

 ln  -s   原文件  链接名称

二、硬链接(Hard Link)

  1. 概念

硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。

     2.特性

只能对已存在的文件进行创建(必须事先要有一个原始文件)。

硬链接必须在同一个文件系统里创建。

不能对目录进行创建。

     3.硬链接的创建

 ln  原文件  链接名称

三、软硬链接的区别

 

     首先我们用ls  -i 命令查看三者inode节点号,可以发现,硬链接与原文件的inode节点号相同,而软链接的inode节点号却与它们不同。这就说明:

硬链接以文件副本的形式存在,所有的硬链接都指向同一个inode ,他们都享有同一个inode和一个数据块(data block)。但硬链接本身并不占用实际存储空间。(如下图)

而软链接则指向一个不同的inode,继而指向不同的block,但是软链接inode指向的区块中存放的是原文件a的路径,相当于原文件的快捷方式。(如下图)

 

那么接下来我们可以进行一些操作来总结原文件、硬链接以及软链接之间的关系。

首先我们删除软链接,这对我们的源文件以及硬链接没有任何影响。

把软链接再次创建后,我们删除硬链接,同样可以看出这对原文件和软链接也没有任何影响。

 

 我们回到最开始的三个文件后,将软链接原文件a删除,可以看到软链接标红(报错),原文件的删除导致软链接失效。

 最后我们把原文件和硬链接同时删除,整个文件会真正的被删除。

 

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值