【Linux学习】深入理解软硬链接

🍑个人主页:Jupiter.
🚀 所属专栏:Linux从入门到进阶
欢迎大家点赞收藏评论😊

在这里插入图片描述

目录

    • `🎈软硬链接`
      • `🐧软链接`
      • `🐬硬链接`
    • `🐸总结软硬链接的原理
    • `🐍软硬链接的应用场景`
      • `🐉软链接应用场景`
      • `🦎硬链接应用场景`


🎈软硬链接

观察软硬链接现象以及指令
命令:ln
作用:给指定文件建立软链接

🐧软链接

指令:ln -s 指定文件 软链接名称

根据下图的例子,我们可以直观上发现:

  • 软链接本质上是一个独立的文件,有独立的inode,该文件的数据区里面存储的是指定文件所在的路径

示例:
在这里插入图片描述

🐬硬链接

指令:ln 指定文件 硬链接名称

根据下面示例的的现象可以发现:

  • 硬链接本质不是一个独立的文件,因为它的inode编号与目标文件一样。本质是新的文件名,和目标文件的inode编号的映射关系!将映射关系写入到指定的目录的数据块中,并将该目录的inode属性中的引用计数++

我们在删除文件时干了两件事情:

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

示例:

删除软硬链接文件,可以使用rm指令删除,也可以使用指令:unlink 软硬链接文件名。其中unlink也可删除普通文件。二者整体区别不大。

`🐸总结软硬链接的原理

硬链接本质:是新的文件名,和目标文件的inode编号的映射关系!将映射关系写入到指定的目录的数据块中,并将该目录的inode属性中的引用计数++。

软链接本质:上是一个独立的文件,有独立的inode,该文件的数据区里面存储的是指定文件所在的路径。 类似windows下的快捷方式。

当我们右键点击软件图标,查看属性,我们可以发现其中的目标就是软链接文件的内容(目标文件的所在路径):

🐍软硬链接的应用场景

🐉软链接应用场景

软链接的应用场景:快捷方式

  • 当我们的可执行程序的位置距离当前位置较深的时候,每次执行的时候都需要 ./路径 都需要加很长的路径,较麻烦,可以直接在当前位置给可执文件建立软链接,就可以直接在当前位置使用 ./软链接名 即可。
    示例:

🦎硬链接应用场景

当我们新建立一个文件,文件的硬链接数为1,因为当前目录的数据块中,对应文件和文件inode的映射关系只有一个,这个很好理解,但是当我们新建立一个目录时,硬链接数却为2,为什么呢?

  • 因为新建立的目录中,有两个隐藏的目录,分为别为... 如图:其中的 .目录的inode与empty目录的inode编号一样,对于一个inode编号,有两个文件名与之对应,所以硬链接数为2。
    这里就很好解释..文件的硬链接数为什么为3了,这里不赘诉。

所以这里可以得出结论一个目录下有多少个子目录,等于该目录的 硬链接数-2 得到

  • 解释:一个空目录,默认硬链接数为2,上面已经解释了,当我们在这个目录里面每新建立一个目录,新建的目录里面都会有一个隐藏的…文件,该…文件是上级目录的一个链接硬,所以硬链接数会+1,每新建立一个都会+1,所以可以得出结论。

注意:用户对一个文件可以建立软硬连接,但是目录只能建立软链接不能建立硬链接(系统可以建立,其中.与…就是例子)。

  • 解释:因为如果用户可以建立硬链接的话,当我们如果给/目录建立硬链接的话,当我们在查找文件的时候,会根据文件路径
    前缀进行路径解析,当从/目录开始向下进行查找的时候,会发生环路问题。如果是系统建立的硬链接,系统会避免环路问题。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

观成科技:海莲花活跃木马KSRAT加密通信分析

概述 自2023年8月至今,海莲花组织多次利用KSRAT远控木马对我国发起攻击。KSRAT通过HTTP协议与C&C服务器进行通信,每个样本都使用了不同的URL。其心跳包采用XOR算法进行加密,而控制指令包和数据回传包则使用了XOR以及“XORAES-128-CBC”组…

DC系列靶场---DC 7靶场的渗透测试

DC-7渗透测试 信息收集 地址探测 使用arpscan对目标地址进行探测 arp-scan -l I eth0 得到目标主机IP地址为172.30.1.132 扫描端口 使用nmap对目标主机做端口扫描 nmap -sS -sV -T4 -p- -O 172.30.1.132 扫描到目标主机开启了80端口、22端口。 -sS Nmap的SYN扫描&…

mapbox-gl 实现房间面生成墙(借助jsts)

文章目录 一、前言 一、前言 当我们从室外放大到室内展示室内图层时,我们可能只有房间面的数据,这时要展示房间墙数据,就需要借助工具对房间面进行缓冲,但是数据变动时,我们还要再次进行一下缓冲区生成操作。下面是借…

Copy as cURL 字段含义

当前端在开发过程中,遇到接口错误反馈给后端人员时,一般在此接口处右键复制为cURL。 格式如下: curl https://xxx.xxx.cn/xxx/xxx/management/record/list \-H accept: application/json, text/plain, */* \-H accept-language: zh-CN,zh;q0…

1.4 C 程序的编译过程与 CLion 调试技巧

目录 1 程序的编译过程 1.1 编写源代码 1.2 预处理(Preprocessing) 1.3 编译(Compilation) 1.4 汇编(Assembly) 1.5 链接(Linking) 1.6 执行 2 编译过程的输入输出文件概览 …

谷粒商城实战笔记-140-商城业务-nginx-搭建域名访问环境二(负载均衡到网关)

文章目录 一,通过域名访问商城架构设计1,为什么nginx要将请求转发给网关2,架构设计 二,配置1,nginx配置1.1 nginx.conf1.2 gulimall.conf1.3 配置原理 2,网关配置 三,记录2个问题1,网…

【C++】初识面向对象:类与对象详解

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性 本章将介绍C中一个重要的概念——类。通过类,我们可以类中定义成员变量和成员函数,实现模块化封装,从而构建更加抽象和复杂的工程。 &…

基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 MSER 4.2 HOG特征提取 4.3 SVM 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2017b 3.部分核心程序 (完整版代码包含中…

CMU15445 (Fall 2023) Project 1 - Buffer Pool 思路分享

文章目录 写在前面Task 1 - LRU-K Replacement PolicyTask 2 - Disk SchedulerTask 3 - Buffer Pool ManagerNewPageFetchPageUnpinPageDeletePageFlushPage 写在最后 写在前面 操作系统为应用程序提供了默认的缓存机制,DBMS作为应用程序,为什么不使用默…

LSLM论文

解决的问题 现在的语音模型(SLM)增强了语音对话的能力,但都局限于回合制对话,在实时对话的情境下与用户交互的能力有所欠缺,例如:当生成的对话不满意时被打断。所以,这篇论文在实时的的语音语言…

ShardingSphere自定义分布式主键生成策略、自定义分片规则

文章目录 主键生成策略源码KeyGenerateAlgorithm源码入口实现扩展 自定义分布式主键生成策略 分片算法ShardingAlgorithm实现扩展 自定义分片算法踩的坑 主键生成策略源码 开发者手册 KeyGenerateAlgorithm 全限定类名org.apache.shardingsphere.sharding.spi.KeyGenerateAl…

QT界面设计开发(Visual Studio 2019)—学习记录一

一、控件升级 简要介绍: 简单来说,控件提升就是将一个基础控件(Base Widget)转换为一个更特定、更复杂的自定义控件(Custom Widget)。这样做的目的是为了在设计界面时能够使用更多高级功能,而不…

环境搭建:全面详尽的 MongoDB Shell MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)

环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主) MongoDB 是一个基于文档的 NoSQL 数据库,以其高性能、灵活性和可扩展性而受到广泛欢迎。本文将带您完成 MongoDB 的安装…

bpmn简单使用(制作流程图)

1、先下载依赖,下面是我下载的版本 "bpmn-io/properties-panel": "^3.23.0", "bpmn-js": "^17.9.1", "bpmn-js-properties-panel": "^5.6.1", "camunda-bpmn-moddle": "^7.0.1",…

CTFHUB-web-RCE-eval执行

开启题目 查看源码发现直接用蚁剑连接就可以,连接之后发现成功了

计算机网络408考研 2020

2020 湖科大教书匠的个人空间-湖科大教书匠个人主页-哔哩哔哩视频 计算机网络408考研 历年真题解析(有字幕无背景音乐版)_哔哩哔哩_bilibili 计算机网络408考研2020年真题解析_哔哩哔哩_bilibili 1 2 3 41 11 1

乡村振兴农村煤改气建设规划设计方案

1. 方案目标与背景 《乡村振兴农村煤改气建设规划设计方案》旨在响应国家乡村振兴战略,通过建设规划推动农村能源结构转型,减少燃煤造成的环境污染,促进农村可持续发展。 2. 农村能源消耗现状 根据2006至2007年的全国性调研,农…

从一个服务预热不生效问题谈微服务无损上线

作者:凡问、启淮 前言 本文基于阿里云技术服务团队和产研团队,在解决易易互联使用 MSE(微服务引擎)产品无损上线功能所遇到问题的过程总结而成。本文将从问题和解决方法谈起,再介绍相关原理,后进一步拓展…

4.11.seq2seq 序列到序列学习

序列到序列学习(seq2seq) ​ 使用两个循环神经网络的编码器和解码器&#xff0c;应用于序列到薛烈类的学习任务。 ​ ​ 在图中&#xff0c;特定的"<eos>"表示序列结束词元。一旦输出序列生成此词元&#xff0c;模型就会停止预测。在循环神经网络解码器的初…

JS+CSS案例:可适应上下布局和左右布局的菜单(含二级菜单)

今天,我给大家分享一个原创的CSS菜单,整个菜单全由CSS写成,仅在切换布局时使用JS。合不合意,先看看效果图。 本例图片 接下来,我来详细给大家分享它的制作方法。 文件夹结构 因为涉及到了样式表切换,所以,你需要借鉴一下我的文件夹结构。 CSS文件夹: reset.css 用于…