【Linux】软硬链接和动静态库

一、软链接和硬链接

1.1 软链接

在Linux中,我们可能会看到这种文件:

这就是软链接,又称为符号链接(Symbolic Link)

说完了表象我们来看本质。可以看到上面的软链接好像是一个文件指向了另一个文件,而实际上也确实是这样的。软链接是一个独立的文件,有独立的inode,其数据块中存放的是指向的文件的路径

这么一说,你可能会想到什么。没错,我们可以把软链接理解成Windows的快捷方式

要创建一个软链接也十分简单,命令为 ln -s 指向的文件路径 软链接名 ,例如:

可以看到,创建的软链接在相比于普通文件,权限位前面的字符从“-”变成了“l”, 代表软链接

并且,软链接的inode和指向文件的inode是不一样的,这也能说明软链接是一个独立的文件

前面提到,软链接内部存放的是指向文件的路径,那如果我们把指向的文件删除会发生什么呢?

删除指向的文件后软链接仍然存在,但已经是一个无效的软链接了,所以软链接与指向的文件是从属关系,指向的文件不存在了,软链接也就无效了

要删除一个软链接也很简单,命令为 unlink 软链接

软链接有什么作用呢?显而易见,我们平时使用的快捷方式有什么用,软链接就有什么用

1.2 硬链接

相比于软链接是一个独立的文件,我们在创建硬链接不会生成一个新的文件,硬链接会与其指向的文件共用同一个inode

简单来说,硬链接就是给文件起别名,虽然文件名不同,但硬链接与指向的文件的inode是相同的,即一个inode对应两个或多个不同的文件名

创建一个硬链接的方式与软链接类似,通过命令 ln 指向的文件路径 硬链接名 即可创建硬链接:

可以看到,权限位后的数字也由1变为了2,实际上这个数字就是硬链接数,在我们创建了一个指向file.txt的硬链接后,硬链接数也增加了。因为二者的inode是一样的,所以拥有相同的硬链接数

此时我们分别打印file.txt和硬链接的内容,可以看到是一样的

此时我们删除file.txt,会发生什么呢?

可以看到,硬链接依然能够被访问,此时硬链接数重新变为1。所以硬链接和指向的文件是

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值