四川省建设人才网站,wordpress5.9文章编辑器,备案时暂时关闭网站,山东网站1.引言
通过我们前面理解文件系统的基础上#xff0c;我们来理解软硬链接#xff0c;在我们学习文件的时候我们会见到各种链接文件#xff0c;其中链接文件分为两种#xff0c;一种叫软连接#xff0c;一种叫硬链接。
下面我们新建一个log文件#xff0c;要对log这个文…1.引言
通过我们前面理解文件系统的基础上我们来理解软硬链接在我们学习文件的时候我们会见到各种链接文件其中链接文件分为两种一种叫软连接一种叫硬链接。
下面我们新建一个log文件要对log这个文件进行软链接我们该如何实现呢 所以此时我们就用这一条命令 ln -s log log.soft.link 使用后者链接前者。回车之后 此时我们再执行这条指令 ll -li 我们发现log这个文件的inode没有发生变化1054696和1054697是两个独立的文件这个log.soft.link我们就称之为软链接。
下面我们再创建一个hello 文件,然后对这个文件进行硬链接 此时我们就看到这两个文件进行硬链接之后inode是一样的。所以我们得出一个结论软链接是一个独立的文件硬链接没有独立的inode编号。 2.什么是软链接什么是硬链接及其软硬链接的应用场景
软链接其实就是类似于windows系统下的快捷方式软链接内容是指向的目标文件的路径。 我们除了可以直接通过这个谷歌浏览器的快捷方式来打开它同时也可以通过该快捷方式的目标文件的路径找到这个可执行程序双击之后打开它。 为什么要有快捷方式呢因为我们平常要运行一个程序都是通过找到.exe这个程序双击之后运行起来但是一般我们的可执行程序的路径可能都比较深不方便用户进行查找所以我们可以通过软链接的方式把这个可执行程序的路径作为软链接文件的内容然后把这个软链接文件其实就是快捷方式放到我们经常使用的桌面上就可以快速找到它那么在linux下也有这样的例子下面我们可以进行一下简单的测试
下面我们新建一个.c文件 然后在myproc.c这个 文件里面写简单的测试代码 下面我们对这些代码进行编译一下然后运行 未来我们做的一些项目,或者是企业做的一些项目它不是把这个myproc.exe文件暴露在外部它可能是把整个项目有一个特定的目录配置成的比如说一般项目proj下都有bin目录conf目录log目录一般可执行程序都是在bin目录下的。 所以项目一般都是这么打包的。
下面我们如果想访问这个项目的可执行程序我们要执行可执行程序还得这么去运行 如果我们用一个文件对这个可执行程序进行软链接 这样就可以更方便的运行用户需要的可执行程序或者项目了。所以我们就可以通过在外部对可执行程序进行软连接进行快速定位指定的文件了。所以软链接的应用场景就是可以快速定位文件这是其一。如何去理解软链接呢类似于windows的快捷方式独立文件有独立的inode.软链接的内容是指向的目标文件的路径。 下面我们来谈谈硬链接
硬链接不是一个独立的文件硬链接是什么
硬链接就是在指定目录内部的一组映射关系文件名——inode的映射关系 这里我们相当于是对同一个文件进行了不同的取名所以这个数字2和1应该是对应的inode于文件名之间进行映射的数量 当我们删除hello之后数字2变成了1所以一个文件什么时候会被删除呢答案是没有文件名和inode进行映射时也就是说没有人用这个文件了那么在文件系统层面目标文件怎么知道没有文件名指向我了呢inode内部有引用计数表明有几个文件名映射关系。
文件名在目录里面具有唯一性其实我们可以把文件名看成一个指向inode的指针一旦有新的文件名指向inode那么inode对应的引用计数那个变量就可以直到该引用计数变为0的时候说明这个文件被删除了。我们把这个引用计数的变量叫做硬连接数。 下面我们再来对硬链接的一些使用场景进行测试 我们新建了一个newfile文件同时在新建一个目录newdir那么我们发现为什么新建一个文件的硬链接数是1而我们新建一个目录的硬链接数是2。这个普通文件只有一个硬链接数其实我们很容易理解因为这个inode只有这一个文件名与之建立映射而这个新目录newdir的硬链接数为什么是2呢 当我们进入newdir这个目录执行ll -lia这条命令我们就可以看到两个隐藏文件一个是. 另一个叫做 .. 。 而.是指的当前目录另一个..指的是上级目录而这个当前目录.其实就是指的newdir对应的inode这个文件所以与inode建立映射关系的有newdir 和 .
而如果我再从newdir目录下建立一个新的目录dir然后我们就会发现这三个文件的inode都是一样的所以自然该inode的硬链接数就是3了。 3.软硬链接之间的区别是什么
区别就是软链接是一个真正的文件有自己的文件名inode和属性内容。而硬链接就是文件名与inode建立的一个映射关系。而用户无法对目录建立硬链接。