前言: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.结果:只有硬链接可以访问,软链接不可访问。
总结:硬连接和软链接的区别已经详细介绍,我们的实际操作和理论是相符合,希望可以帮到大家。