Linux文件系统中的软链接与硬链接

1 什么是链接

在文件系统中,链接指的是存储在在存储空间中的文件和文件系统组织管理文件之间的连接关系
我们知道文件系统要想对存储在计算机中的文件进行管理,首先要对他进行描述,再对他进行管理,举个例子,我们大中国有很多的公司,国家肯定要对其进行约束管理,怎么管理呢,首先公司在创立前要在商务部备案,简单来说,就是,你得来我这儿登记一下,我需要知道你的信息(公司名称,注册资金大小)你在我这登记注册了我就可以管理你了. 对应到文件系统中,首先每个文件都得到文件系统进行备案(登记信息),然后文件系统会给每个文件分一个iNode号,这个inode里面记录了关于该文件的一切必要信息.

以下图说明大致情况

Linux文件系统中的软链接与硬链接

2什么是硬链接

创建硬链接相当于给源文件取了个别名,硬链接文件和源文件共享一个iNode号,通过iNode硬链接文件可以访问源文件,每创建一个硬链接文件,iNode中的连接数加1,每删除一个硬链接文件.连接数减1,只要连接数大于0,就可以访问到源文件

3什么是软连接

软链接类似于Windows中的快捷方式一样,软链接是一个独立的文件他有自己独立的iNode号,软链接里面存储了源文件的路径,通过该路径可间接实现对源文件的访问
软链接文件又被称为符号文件,它的前面带L

Linux文件系统中的软链接与硬链接
4 软链接和硬链接的区别

从使用角度来说,两者没有任何区别,都与正常的文件访问方式一样,支持读写,如果是可执行文件的话也可以直接执行。他们之间的区别在于底层的实现原理不同

区别如下

1硬链接与源文件共享一个iNode号,说明他们是同一个文件.而软链接有自己的iNode号说明他们是两个不同的文件

2删除源文件 对于硬链接来说,只是iNode中的连接数减一,通过硬链接(连接数大于0)照样可以访问源文件,而软连接文件失效,不能访问源文件

3在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系

4文件大小不一样,硬链接文件大小与源文件相同,软链接只是存储了源文件的路径,所以对同一个源文件同时创建软链接和硬链接,软链接文件的大小小于硬链接文件

来个图助个兴
Linux文件系统中的软链接与硬链接