Linux软链接和硬链接区别(+实践)

前言:inode是Linux操作系统指定文件的依据,每个文件有且只有一个inode。

一.理论:

(1)软链接和硬链接释义:

   硬链接也称为链接,链接就是它所对应的原文件。通过链接对文件进行编辑时,编辑的实际上是原始文件。

   软链接又叫符号链接,这个文件包含了原文件的路径名,可以是任意文件或目录。

(2)区别:

   1. 硬链接:指向与原文件同一个索引inode(节点),进而指向同一个物理文件。只要有一个硬链接存在,物理文件就不会被清除。硬链接和源文件是“平等”的,只删除一个不能使文件真正被删除。

   2. 软链接:指向一个新的索引inode(节点),该节点指向的空间存的是文件的路径,根据路径找到物理文件。如果软链接创建时指定的那个目录被“删除”,则无法访问物理文件。软链接是附属于原文件的,删除、更改原文件路径后软链接将失效。

   3. 下图示,file是原文件,硬链接hard link和它指向了同一个索引节点,进而指向同一数据块。而软链接soft link指向了新的索引节点,数据块存的是file的路径,访问时是先获得路径(file),通过file指向的inode(节点),再访问真正的数据块的。

二.实际操作:

(1) 创建原文件和硬链接,软链接

如上图,sourcefile是原文件,与hard1,hard2 指向同一个节点;而soft1,soft2则指向新的一个inode

(2) 原文件添加内容

如上图,软硬链接的内容肯定都是一样的

(三) 删除原文件

如上图,软链接不可也访问,提示“没有当前文件或目录”,而硬连接可以访问(因为:有硬链接存在,所以物理文件(data bolck)没有真正删除)。

(4)修改软链接指向的文件

如上图,修改soft2相当于修改它指向的目录,即sourcefile所链接的目录,故重新创建文件并写入内容。重新创建时要分配新的物理空间和对应的i节点(1051388)。注意:虽然这个sourcefile和之前删除的sourcefile名字一样,但已经是两个文件。删除的sourcefile,现在被hard1和hard2引用。

(5)移动原文件所在的目录

如上图:

            1.重新创建原文件file,硬链接hard,软链接soft,目录move1;

            2.将原文件file移动到move1目录下;

            3.结果:只有硬链接可以访问,软链接不可访问。

 

总结:硬连接和软链接的区别已经详细介绍,我们的实际操作和理论是相符合,希望可以帮到大家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值