您现在的位置是:首页 >学无止境 >【Linux】软硬链接网站首页学无止境

【Linux】软硬链接

_麦子熟了 2024-09-06 12:01:03
简介【Linux】软硬链接


制作软硬链接,对比差别

制作软链接

1.先创建一个文件,并向其中写入内容:
在这里插入图片描述
在这里插入图片描述
2.建立软链接:ln -s myfile.txt my-soft
在这里插入图片描述

可以发现,软链接是一个独立的链接文件(lrwxrwxrwx,l表示该文件是链接文件),有自己的inode number,那么也必有自己的inode属性和内容。并且我们cat my-soft文件,能查看到内容。软链接内部放的是自己所指向的文件的路径。my-soft -> myfile.txt

制作硬链接

去掉选项-s,就可以实现硬链接:ln myfile.txt my-hard

unlink 硬链接文件名 //可以删除硬链接

竟发现硬链接和目标文件共用一个inode number,意味着,硬链接一定是和目标文件使用的是同一个inode!硬链接没有独立的inode!并且可以发现有个属性变成了2!
在这里插入图片描述

那硬链接究竟做了什么呢?答案就是在当前目录下建立了新的文件名和老的inode的映射关系,它只修改了目录!如果我们rm myfile.txt,将原文件删除,会发现my-hard依然健在,并且我们cat my-hard查看这个文件的内容,依然不变。只是发现属性竟从2又变成了1。
在这里插入图片描述
在这里插入图片描述

提出软硬链接的应用场景

软链接的应用场景

在这里插入图片描述
若我将mytest可执行文件放在d3中:
在这里插入图片描述
那我们在当前目录下,想执行mytest是不是就很麻烦呀,我们得到d3文件夹中才能执行,所以我们现在用软链接解决这个问题:

ln -s ./d1/d2/d3/mytest mytest

在这里插入图片描述
显示:软链接文件名 -> 目标文件的路径

创建软链接之后,我们就可以直接在当前目录下执行mytest可执行文件了,所以软链接的作用:把一个路径很深的程序或者库或者对应的头文件建立到我们的当前目录下,让我们能快速的访问这个文件。类似windows下的快捷方式

硬链接的应用场景

我们先在当前目录下创建一个空目录:当前empty目录的硬链接数为2,原因是empty目录下还有隐藏文件,.代表当前目录,这个.就是empty目录的硬链接。
在这里插入图片描述
现在在empty目录下在创建一个目录dir,此时empty目录的硬链接数变为了3:
在这里插入图片描述
因为此时dir的…文件指向上级的目录empty,所以硬链接数为3
在这里插入图片描述

目录下的隐藏文件:.表示与当前目录建立硬链接;..表示与当前目录的上级目录建立硬链接,这也是为什么我们cd ..能回到上级路径的原因,因为..是上级路径的硬链接。

注意:用户不能给目录建立硬链接。

总结

软硬链接本质区别就是有无独立的inode.

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。