【Linux】软硬连接

2024-06-16 11:20
文章标签 linux 连接 软硬

本文主要是介绍【Linux】软硬连接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一.现象

二.硬链接

用处

三.软链接

用处

​编辑


hello,大家好,今天,我们要学习的内容是软硬链接的。我们将从软连接的作用,硬链接的作用

和软硬链接的区别等方面学习。那我们就开始啦!

在看本篇博客之前,为了更好的理解软硬链接,建议先看

一.现象

二.硬链接

如何创建硬链接:

ln  目标文件     生成的软链接文件

 

如图,我们发现:这两个文件的inode编号是一样的 。所有我们断定这里的建立硬链接根本没有创建新的文件,因为没有分配新的inode。既然没有创建新的文件,那么一定没有自己的属性集合和内容集合。

所以,建立硬链接,就做了简简单单一件事:就是在指定路径下,新增文件名和Inode的映射关系。

除此之外,我们发现当我删除源文件时,依旧可以从硬链接中读取内容,引用计数随之减1。这不就是相当于给源文件换个了名称吗! 

什么时候一个文件算是被真正的删除呢?

我们之前讲过,我们想要删除一个文件并不是我们直接删除的,而是把我们删除这个文件的想法告诉操作系统,然后操作系统会将这个文件的引用计数减去1,等到该文件的引用计数等于0时,操作系统才会下令将这个文件删除。

那,硬链接有啥作用啊?应用是什么呀?

用处

 如图我们发现一个新的空目录的引用计数为2。这是因为在一个空目录下,并不是不存在文件,而是有两个文件,分别为“.”“..”分别表示当前路径和上一级路径。然后我们发现空目录的inode编号和“.”的inode编号是同一个,所以“.”就是这个目录的硬链接。

接着,我们在这个空目录下,再创建一个空目录,这时,空目录的引用计数变为了3。然后在新创建的空目录中有一个文件名为“..”的文件,这个文件和空目录的文件也是相同的。也是空目录的硬链接。所以,空目录的引用计数由2变为3。

其实,我们使用"cd .."就可以返回上一级目录,这是因为“..”是上一级目录的硬链接的缘故。

三.软链接

 

我们发现:通过硬链接建立起来的文件的inode和源文件不同,说明通过硬链接重新建立起来一个文件,新文件有自己独立的inode和数据块。但是一删除源文件,然后打开硬链接文件,显示找不到源文件,因为硬链接文件中保存的源文件的路径。为了验证我们的判断,我们在相同的路径先下创建一个同名文件:

所以,我们确认:软链接是根据路径查找源文件的。 

 软链接和windows下快捷方式是一样的,删除快捷方式不影响应用程序,删除应用程序会导致快捷方式失效。

用处

我们知道:windows下的快捷方式优点是方便,快捷。软链接有是如此。举个例子

有些文件藏得很深,调用起来很麻烦,这时就可以使用软链接,在较浅路径下创建一个软链接,在较浅路径下就可以调用较深处的可执行程序。 

写到这个,软硬链接的内容就结束了,因水平有限,文中难免会有错误,请各位读者指正!!

这篇关于【Linux】软硬连接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066321

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

java如何通过Kerberos认证方式连接hive

《java如何通过Kerberos认证方式连接hive》该文主要介绍了如何在数据源管理功能中适配不同数据源(如MySQL、PostgreSQL和Hive),特别是如何在SpringBoot3框架下通过... 目录Java实现Kerberos认证主要方法依赖示例续期连接hive遇到的问题分析解决方式扩展思考总

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程