【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,那么就会造成死循环了。

应用场景:

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

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

相关推荐
左手の明天4 小时前
SLIP 协议封装与解析详解:原理、C 代码与实战案例
linux·c语言·开发语言·c++
꯭自꯭闭꯭4 小时前
达梦SQL优化相关
linux·运维·数据库·sql
ZhangJun955 小时前
在 32GB 内存电脑上本地搭建 Qwen3.6-35B-A3B 大模型踩坑实录
运维·人工智能·阿里云·ai·软件构建
一条破秋裤5 小时前
Linux 共享内存通信:POSIX 共享内存与 mmap
linux·运维·服务器
贵州山魈羡民6 小时前
【玩转手机】通过 Podroid 上的 Alpine 部署 1Panel,把微型服务器装进口袋
运维·服务器
小白的码BUG之路6 小时前
Docker -- 构建nacos镜像
运维·docker·容器
谷哥的小弟7 小时前
CentOS Stream浴火重生
linux·运维·centos
程序员-Benothing7 小时前
Shell输入输出详解:read、echo、printf、颜色输出
linux·运维·服务器
和裕7 小时前
全纸结构重型纸箱能否满足 1 吨以上设备出口熏蒸豁免要求?通关合规性全解析
大数据·运维·网络·人工智能·算法
FPGA小徐8 小时前
从 NEMU 到 AbstractMachine:程序、运行时环境与 AM 完全解析
linux·运维·服务器