提到链接,你能想到什么

提到链接,你能想到什么

一.链接文件

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

文件在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