【Linux】--文件系统之软硬链接

通过上文的学习我们知道,我们对于一个文件的查找,是通过其inode编号进行查找的,那么我们软硬链接是有啥作用的呢?

软链接和硬链接、都两种链接都是实现一个文件、有多个入口的效果。

不过其实现的底层是有本质区别的

硬链接是直接共享器inode实现文件分身、软链接的话是通过独立的inode指向目标文件路径。

软链接和硬链接的创建

硬链接:

ln abc def

那么就可以使abc这个文件名、也是指向的def这个文件的inode的。

abc和def的链接状态完全是一样的,其被称为文件的硬链接,内核记录了这个连接数。

我们在删除文件的时候就干两个事情

1、将目录中对应的记录删除

2、将硬链接数-1,如果为0,那么将对应的磁盘释放

软链接:

其是通过名字引用另外一个文件,但是实际上,新的文件和实际的文件的inode是不一样的,应用场景上我们可以将其和我们的快捷方式。

语法:

ln -s abc.s def

下面我们来说二者的区别:

首先就是软链接的inode和原文件的inode是不一样的,而且软链接的文件大小很小很小

硬链接的话文件的inode和原文件的inode是一样的

软链接实际上是一个独立的文件、因为其有唯一的inode编号、那么文件=文件内容+文件属性

那么其内容就是指向的文件的路径字符串

硬链接其不是一个独立的文件、因为其没有独立的inode编号

其本质就是在目录下,建立新的文件名和目标inode的映射关系、其并没有在系统层面上创建新的文件。所以硬链接是链接文件的备份这样。

那么我们为啥不直接cp呢?

首先就是cp就是要新建文件,然后有独立的空间,需要使用到磁盘空间。

硬链接不会多占空间,其只是通过改变硬链接数,其都是指向的一个inode底层的数据块区只有一个。

注意:

我们可以对目录和普通文件设置软链接,但是不可以对目录文件设置硬链接。

比如我们查找一个文件,然后呢这个文件的上级目录硬链接了home,那么就会造成死循环了。

应用场景:

软链接的使用场景非常广泛、其比较常见的就是充当快捷方式

硬链接就是起到备份的作用

相关推荐
镜子AI9 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
tianyuanwo9 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
HideF9 小时前
Linux sudo
linux
FlightYe10 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
蹊黎10 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
知已难寻11 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
huainingning12 小时前
Windows syslog日志服务器搭建与模拟器对接
运维·服务器·智能路由器
牛马鸡niumasi12 小时前
【Linux】C语言文件操作
linux
say_fall12 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wacsii13 小时前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器