【Linux】学习-文件的软硬链接

文件的软硬链接

在上一篇拓展篇—文件系统中我们介绍过文件元的概念:

image-20230925175431180

我们在使用ls -l命令查看文件元信息的时候,有一个硬链接数,说明文件的硬链接数属于文件的属性之一,那么硬链接究竟是什么呢?软链接又是什么呢?他们又有什么区别呢?下面我们就来介绍一下

软链接

我们可以通过命令:ln -s 创建一个文件的软链接:

image-20230926155911224

软链接有什么用

  • 软链接本质上是属于一个新的文件,他有自己的inode,而文件内容就是指向文件的执行路径。如果一个可执行程序在路径中藏得很深,每次执行时要么进到程序对应的目录下要么要携带路径太麻烦了,因此用软链接的方式可以快速执行,跟在windows下在桌面创建一个程序的快捷方式一个道理

没创建软链接时执行:

!image-20230926160812445

创建软链接后:

image-20230926160940461

则可以在当前路径下很方便的执行程序

硬链接

我们可以通过ln 命令创建硬链接:

image-20230926163221657

硬链接有什么用?

硬链接创建的文件并不是一个独立的文件,他是与关联文件共享一个inode,说白了就是给文件起了一个别名,而文件元所显示的硬链接数就是此文件对应的inode下所有映射文件名的文件数。

有硬链接的文件被删除时会发生什么?

  • 在目录中将对应的记录删除
  • 将硬链接数-1,如果硬链接数变为了0,才将对应的磁盘释放

软硬链接区别

软链接的inode

我们通过ls -i 命令来观察软链接创建的文件:

image-20230926165729132

我们观察到,这两个文件的inode编号是不一样的,也就是说他们是不同的文件,有着不同的属性

  • 软链接有着独立的inode!

硬链接的inode

同样的,通过命令 ls -i 观察:

image-20230926170017119

我们观察到,这两个文件有着相同的inode编号,所以创建硬链接的本质就是在指定的目录下,建立了文件名和指定inode的映射关系,也就是一个inode对应了多个文件名,给文件起了个别名,仅此而已!在命令ls -l 下能查看硬链接数,其实就是查看此文件的inode一共映射有多少个文件名!

image-20230926170309805

同一inode下有两个文件名,因此硬链接数为2。本质上这是一个引用计数,当新建映射时++,删除时则–,减到0时此inode才会正式被回收。

软硬链接的区别:

  • 软链接有独立inode,硬链接没有

为什么空目录的硬链接数为2?

  • 目录本身自己是一个映射
  • 目录内部有一个隐藏文件:当前文件 “.” 也是一个映射

image-20230926172000751

image-20230926172024244

如果目录内存放有n个目录的话,则硬链接数为2+n,因为目录内还有一个隐藏文件:“…"上级目录,也是与inode的一个映射

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2779618.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【闲谈】开源软件的崛起与影响

随着信息技术的快速发展,开源软件已经成为软件开发的趋势,并产生了深远的影响。开源软件的低成本、可协作性和透明度等特点,使得越来越多的企业和个人选择使用开源软件,促进了软件行业的繁荣。然而,在使用开源软件的过…

CSS Selector—选择方法,和html自动——异步社区的爬取(动态网页)——爬虫(get和post的区别)

这里先说一下GET请求和POST请求: post我们平时是要加data的也就是信息,你会发现我们平时百度之类的 搜索都是post请求 get我们带的是params,是发送我们指定的内容。 要注意是get和post请求!!! 先说一下异…

STM32Cubmax DAC 采集

一、概念 DMA,全称为: Direct Memory Access,即直接存储器访问, DMA 传输将数据从一个 地址空间复制到另外一个地址空间。 当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成。典型的例子就是移动…

【开源】基于JAVA+Vue+SpringBoot的假日旅社管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统介绍2.2 QA 问答 三、系统展示四、核心代码4.1 查询民宿4.2 新增民宿评论4.3 查询民宿新闻4.4 新建民宿预订单4.5 查询我的民宿预订单 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的假日旅社…

QGIS Desktop工具转换png文件为TIF文件

https://qgis.org/ QGIS Desktop 3.34.3 菜单 Layer -> Georeferencer 选择 文件 点击 加载的图片的左上角的点 弹窗中没有数据 录入 0 0 再加入右侧下面的点 调整下 数据 点击 绿色的箭头按钮 输出TIF文件 GeoServer中添加 存储仓库 点击 GeoTIFF 录入,选…

Docker Compose实例

目录 一、前提说明 二、简单的Docker容器部署案例 1. Dockerfile 配置 2. docker-compose.yml 配置 3. application-prod.properties 配置 4. pom.xml 配置 5. 上传文件 6. 创建基础Docker镜像 7. docker-compose.yml编排 8. 停止并删除容器编排 三、案例地址 一、前…

大模型实战营第二期——3. 基于 InternLM 和 LangChain 搭建你的知识库

github地址:InternLM/tutorial-书生浦语大模型实战营文档地址:基于 InternLM 和 LangChain 搭建你的知识库视频地址:基于 InternLM 和 LangChain 搭建你的知识库Intern Studio: https://studio.intern-ai.org.cn/console/instance动手学大模型…

Linux基础-配置网络

Linux配置网络的方式 1.图形界面 右上角-wired-配置 点加号-新建网络配置文件2.NetworkManager工具 2.1用图形终端nmtui 1.新建网络配置文件add 1.指定网络设备的类型Ethernet 2.配置网络配置文件的名称,名称可以有空格 3.配置网络配置文件对应的物理网络设备的…

《21天精通IPv4 to IPv6》第4天:理解IPv6子网划分规则——如何为不同的系统划分IPv6子网?

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

前端工程化面试题 | 02.精选前端工程化高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

内网安全-内网穿透

目录 内网渗透 Nc使用详解 Nc监听和探测 Nc传文件 termite内网穿透工具 ssh代理内网穿透 ssh配置socket代理 MSF多级网络穿透 内网渗透 Nc使用详解 Nc监听和探测 Nc传文件 termite内网穿透工具 1、termite 之前叫ew (可以进行正向连接,可以…

Python运算符大全,值得收藏

一、 Python的算术运算 Python的算术运算符与C语言类似&#xff0c;略有不同。包括加()、减(-)、乘(*)、除(/)、取余(%)、按位或(|)、按位与(&)、按位求补(~)、左移位(<<)、右移位(>>)、单目求反(-)、幂运算(**)、整除运算(//)、增强运算、增强矩阵乘法()。 …

05.坐标系

1. 坐标系原点 坐标系原点就是屏幕/窗口的左上角&#xff0c;X向右增长&#xff0c;Y向下增长。 2.设置控件位置 设置控件位置&#xff0c;就相当于是需要指定控件的坐标&#xff0c;对于该控件来说&#xff0c;其坐标原点是其父窗口/父控件的左上角。 设置方法就是通过控件的…

【北邮鲁鹏老师计算机视觉课程笔记】05 Hough 霍夫变换

【北邮鲁鹏老师计算机视觉课程笔记】05 Hough 霍夫变换 1 投票策略 考虑到外点率太高 ①让直线上的每一点投票 ②希望噪声点不要给具体的任何模型投票&#xff0c;即噪声点不会有一致性的答案 ③即使被遮挡了&#xff0c;也能把直线找出来 参数空间离散化 直线相当于就是m,b两…

机器学习:过拟合和欠拟合的介绍与解决方法

过拟合和欠拟合的表现和解决方法。 其实除了欠拟合和过拟合&#xff0c;还有一种是适度拟合&#xff0c;适度拟合就是我们模型训练想要达到的状态&#xff0c;不过适度拟合这个词平时真的好少见。 过拟合 过拟合的表现 模型在训练集上的表现非常好&#xff0c;但是在测试集…

【开源】SpringBoot框架开发天沐瑜伽馆管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 瑜伽课程模块2.3 课程预约模块2.4 系统公告模块2.5 课程评价模块2.6 瑜伽器械模块 三、系统设计3.1 实体类设计3.1.1 瑜伽课程3.1.2 瑜伽课程预约3.1.3 系统公告3.1.4 瑜伽课程评价 3.2 数据库设计3.2.…

【动态规划】1301. 最大得分的路径数目

作者推荐 【动态规划】【前缀和】【C算法】LCP 57. 打地鼠 本文涉及知识点 动态规划汇总 LeetCoce1301. 最大得分的路径数目 给你一个正方形字符数组 board &#xff0c;你从数组最右下方的字符 ‘S’ 出发。 你的目标是到达数组最左上角的字符 ‘E’ &#xff0c;数组剩余…

tkinter-TinUI-xml实战(10)展示画廊

tkinter-TinUI-xml实战&#xff08;10&#xff09;展示画廊 引言声明文件结构核心代码主界面统一展示控件控件展示界面单一展示已有展示多类展示 最终效果在这里插入图片描述 ![](https://img-blog.csdnimg.cn/direct/286fcaa2fa5648a992a0ac79b4efad82.png) ………… 结语 引言…

二叉树和堆(优先队列)

前言&#xff1a; 本章会讲解二叉树及其一些相关练习题&#xff0c;和堆是什么。 二叉树&#xff1a; 二叉树的一些概念&#xff1a; 一棵二叉树是有限节点的集合&#xff0c;该集合可能为空。二叉树的特点是每一个节点最多有两个子树&#xff0c;即二叉树不存在度大于2的节点…

进程间通信-消息队列

消息队列的公共资源是链表结构。 通信双方不会和消息队列进行挂接&#xff0c;而是像管道一样&#xff0c;访问内存中的消息队列。 消息队列由操作系统维护&#xff0c;但是由通信的某一方创建和删除 通信双方都需要获取到消息队列&#xff0c;和共享内存一样。 当发送方有数据…