需要云服务器等云产品来学习Linux的同学可以移步/–>腾讯云<–/官网,轻量型云服务器低至112元/年,优惠多多。(联系我有折扣哦)
文章目录
1. 软硬连接
1.1 软链接
在Windows系统中,我们可以给任意一个文件或者文件夹建立快捷方式
这样很方便我们打开很深的文件夹内存放的文件,实际上在Linux中也有这种快捷方式的概念,只是在Linux中它叫做软链接
1. 软链接的创建方式
我们可以通过ln
指令来创建链接,其中带上选项s
表示创建软链接
ln -s FILE_NAME SOFTLINK_NAME
因为软链接有自己的inode编号,证明了软链接本质上是一个新文件
实际上软链接里面存放的是源文件的路径,所以看起来软链接的大小比较小
2. 软链接的删除(解除链接)
方法一:软链接也是文件,所以能供直接使用rm
指令删除软链接文件。
方法二:使用unlink
解除软链接
我们可以把软链接理解为一个快捷方式,那么源文件被删除之后,我们的快捷方式显而易见也是用不了了的
1.2 硬链接
在之前的文件系统的文章中,我们提到OS真正找到文件依靠的是inode,文件名只是在目录文件中的一堆和inode对应的映射。实际上在Linux中,可以让多个文件名映射同一个inode,这种方式被称为硬链接
1. 硬链接的创建方式
在创建软链接的时候,我们使用了-s
选项,不使用-s就是创建硬链接
ln FILE_NAME SOFTLINK_NAME
可以看到,这里两个文件名对应的inode是一样的,这个硬链接不是一个独立的文件。
当硬链接其中一个文件的大小、内容等发生变化,那硬链接的文件都会发生相应的变化,所以建立硬链接根本没有新增文件,因为没有给硬链接分配独立的inode,既然没有创建文件那么就没有自己的属性集合和内容集合,用的是别人的inode和内容。创建硬链接本质就是在指定的路径下,新增文件名和inode编号的映射关系!
由于硬链接的存在,我们知道inode可能会被多个文件名同时指向,所以实际上在inode结构体中有一个计数器,表示被指向的次数,也就是硬链接数
这里的数字也就是这个引用计数。由于myfile.txt被hard.link硬链接了,所以对应的inode被两个文件名指向了
已经知道如果把源文件删掉,那么软链接将会失效,硬链接呢?
所以可以得到结论:当一个文件的inode引用次数变为0 的时候才会被真正删除
首先,目录本身就是一个文件,这个目录名和他的inode构成了一组映射关系,当我们进入到这个目录之后,在这个空目录里面默认会有一个
.
表示当前目录本身,这也是一组映射
结论