提到链接,你能想到什么

news/2025/9/19 22:35:09/文章来源:https://www.cnblogs.com/kx46/p/19101806

一.链接文件

在了解链接文件两种类型之前,必须先了解的知识:

文件在Linux中被分成两部分:数据(data block)和文件元数据(inode)

inode与block

每个文件都有一个 inode(索引节点),用来存储文件的元信息。

具体存储内容:

  • 文件大小(字节数)
  • 权限(读写执行rwx)
  • 所有者
  • 创建/修改时间(时间戳)
  • 数据块在磁盘上的位置(文件数据block位置)
  • 链接计数(有多少个文件指向这个文件)

文件名只是一个“指向 inode 的标签”,真正的数据在 inode 和数据块中。

划重点:****文件名!=(不等)文件本身

​ ----->就像名字,叫张三的人一堆,但每个张三都唯一(名字只是符号)

block,用来记录文件真实内容

系统访问文件三部曲:

  1. 系统通过文件名称找到对应inode;
  2. 通过inode编号,获取inode信息;
  3. 根据inode信息,找到block,读取数据。

屏幕截图 2025-09-19 210910

1.硬链接

不同文件名指向同一个inode(同一个真实的数据源)

同一个inode意味着什么?

​ 1)同一个文件,修改一个另一个会立即生效

​ 2)删除:但为什么删除一个硬链接不影响另一个?

先揭晓答案:只有当链接计数变为 0 时,系统才会真正删除 inode 和数据块

屏幕截图 2025-09-19 213119
“一个文件,多个名字”

删除 一个链接` 只是删了一个“名字”,不影响其他名字访问文件内容。

另一个仍然指向同一个 inode,数据完好无损

2.软链接

快捷方式(不理解的话就自己试着在win/mac创一个)

链接文件inode指向源文件block,访问链接文件时=访问源文件block

与硬链接区别

链接文件与源文件inode以及文件名称不一样,但指向同一block;

主要用途:代码发布和版本升级

易混淆:ln -s 用法:分清楚哪个是源文件

1)ln -s <目标文件或目录> <链接文件名>

2)ll查看文件时:
[root@node~]#:ls -l
lrwxrwxrwx 1 user user 15 Apr 5 10:00 mylink -> /path/to/target

mylink -> /path/to/target 表示链接名和指向的目标

二.克隆

链接克隆 = 节省空间、依赖父镜像;完整克隆 = 独立运行、性能更好。

1.链接克隆

基于一个父虚拟机(或快照) 创建的克隆体,它共享父镜像的磁盘数据,只保存与父镜像的差异部分

2.完整克隆

父虚拟机的完全独立副本,包含操作系统、应用程序和所有数据的完整拷贝,不依赖原始虚拟机

3.适配场景

开发测试用“链接”,生产部署用“完整”。

屏幕截图 2025-09-19 220753

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

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

相关文章

实用指南:容器逃逸漏洞

实用指南:容器逃逸漏洞pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &qu…

实用指南:容器逃逸漏洞

实用指南:容器逃逸漏洞pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &qu…

深入解析:卷对卷(Roll-to-Roll,R2R)技术的应用领域和技术进展

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:卷对卷(Roll-to-Roll,R2R)技术的应用领域和技术进展

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

三种方式处理SpringBoot全局异常

在SpringBoot开发web项目时,异常处理是必不可少的一部分。在应用中,异常可能出现在任何地方,例如在控制层,服务层,数据访问层等等。如果不对异常进行处理可能会导致应用崩溃或者出现未知的错误。因此对于异常的处…

解题记录说是 | P3695 CYaRon!语

小模拟link 起因 闲的没事找模拟做,发现这个部分分的档次很多,而且好想挺好做,就做了。 是分着部分分做的,而且完全就是那种苦(封装各种实现)尽甘(飞速写完 ihu hor while)来的感觉,很爽的。 code goes first…

分享一个极度精简的绿色的 五笔输入法

这个输入法是本人修改过的 柚子输入法,极度精简,绿色无需安装,释放之后即可使用. 功能说明请看 压缩包的说明文件. 通过网盘分享的文件:youziIME2025-9-19.rar 链接: 百度网盘 如果需要修改功能,你需要懂一点Auto…

[GDKOI2023 提高组] 游戏 题解

一种比较简短的写法: 拉出直径,再在直径的每一个点上跑一下最长链,为 $ mx_i$ 这里设三点的路径交点为 \(rt\)。 假设 \(rt \rightarrow u,v,w\) 的距离为 \(dis1,dis2,dis3\) 。 容易知道 \(dis1 = (x+y-z)/2,dis2…

CSP-J/S 2025 游记

突然发现今年忘记写游记了…… [2025.6.30,2025.8.1) 中考。 [2025.8.1,2025.8.31] 暑假集训 15 天,一天比赛一天专题。早上 8:00 到机房训到 12:00 然后和高三抢饭,下午 14:00-17:00 继续搞,晚上 19:00-22:00。只有…

2025.9.19 计数dp小记

[CQOI2011] 放棋子 本题有一个性质,棋子间互不关联,又因为数据范围小,很容易 \(dp\) 记 \(f_{p,i,j}\) 表示考虑前 \(p\) 种颜色,放了 \(i\) 行 \(j\) 列的方案数 则枚举 \(p\) 放了几行几列,有 \[f_{p,i,j} = \s…

实用指南:AI推理范式:从CoT到ReAct再到ToT的进化之路

实用指南:AI推理范式:从CoT到ReAct再到ToT的进化之路pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

sign up - Gon

如果注册github时出现 Unable to verify your captcha response. Please visit https://docs.github.com/articles/troubleshooting-connectivity-problems/#troubleshooting-the-captcha for troubleshooting informa…

ctfshow web入门 信息搜集

有些题目会了就没写了,只记录一下自己不会写的题目,不过信息搜集还是很重要的ctfshow web3(自带网络工具包查看数据)查看源码什么也没有扫目录也什么都没有只能说信息收集能力还欠佳, 我们可以先尝试使用浏览器自带…

完整教程:数据结构:单链表的应用(力扣算法题)第二章

完整教程:数据结构:单链表的应用(力扣算法题)第二章pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&…

CF2039E Shohag Loves Inversions

CF2039E Shohag Loves Inversions 题意: 给你一个数列,初始数列为 $ a = [0, 1] $ ,现在重复进行以下操作若干次:将当前数组中逆序对个数 \(k\) 插入当前数组中任意一个位置,包括开头或者结尾。其中 \(n\le 1e6\)…

深入解析:sqlite3的加解密全过程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

U522155 板垣 カノエ is WATCHING YOU std

U522155 板垣 カノエ is WATCHING YOU #include<bits/stdc++.h> #define int long long #define add(a,b) to[++ tot] = b,nxt[tot] = h[a],h[a] = tot #define con putchar_unlocked( ) #define ent putchar_u…

ctfshow web

ctfshow里面免费的web题不写白不写ctf.show_红包题第二弹1打开题目显示这样 看看源码有无提示可以看到提示了cmd参数,那我们就随便传点东西看看会有什么回显又是代码审计,可以看到大小写字母过滤后只有小写p可以使用…

代码随想录算法训练营第三天 | leetcode 203 707 206

203移除链表元素 注意事项:java语言的访问链表和数据用的是".",空指针是小写的null。在删除链表时先对表头进行判断避免表头是null和表头元素是要删除的元素,下面进行循环寻找时要注意判断指针的下一个指针…

Codeforces Round 1051 (Div. 2) A~D2

A. All Lengths Subtraction 思维。 每次选择长度为 \(k(k \in [1,n])\) 的区间减 \(1\),那么第一个首选的就是 \(a_i = n\) 的 位置,然后维护 \(n\) 所在的区间,检查 \(n-k+1\) 是否在其两边,有的话就扩大区间,否…