谈Linux中的硬链接和软链接
创始人
2025-05-30 03:14:35

前言:在Linux中内存的存储方式和Windows下不太一样,对于学Linux来说这是一个最基础的小问题,要是这个都没有搞明白那么只能说对于Linux是了解不够的。

什么是链接?

链接是一种在共享文件和访问它的用户的若干目录项之间创建联系方式。

在往下说硬链接和软链接的时候,我们先来说一下硬盘的存储

对于硬盘存储

如图硬盘里面分为元数据部分和数据部分

对于数据来讲很好理解就是存储你的数据,那么什么是元数据?元数据,你可以理解为这个东西就是一个索引,当你想要查找数据的时候,你需要先在元数据中找到你想要找数据的位置的头地址,拿到这个头地址后再去数据部分去寻找存储的数据。

拿我们买的U盘来讲,买一个128G的U盘,你插到电脑上发现没到128G,可能只有117G,那么那十多G去哪里了,其实那10多G就是分给了元数据部分。

接下来我们来聊聊硬链接

硬链接是一个指针,指向inode(就是我们说的“钥匙”)。系统不为他们重新分配inode,两文件具有相同的inode。建立硬链接 用ln命令。

硬链接文件有以下两处限制:

  • 允许给目录创建硬链接

  • 有在同一文件系统中的文件之间才能创建链接

假设我们有一个文件q.txt,在数据部分已经存入了数据,我们如果想要访问数据的话,我们是通过q.txt在元数据拿到“钥匙”去数据部分找到对应的数据,当我们建立了硬链接,那么link.txt也指向q.txt指向的“钥匙”,不建立新的inode,不占用硬盘空间(优点)。

当我们删除文件的时候,其实并没有真正的清除掉存储的数据,只是把进去查询数据的入口给切断了,当我们建立了硬链接后,我们删除掉q.txt如下图。

此时我们依然可以通过link.txt进行访问数据。

我们来聊一聊软链接

对于软链接我们对他并不陌生,可能你会说自己没有听说过软链接,那只是你没有了解他的名字,但是你一直再用这个链接,在Windows系统中,我们用类似软链接的形式,那些所谓的快捷方式就是“软链接”,我们应该删除过文件,没错,当我们把源文件删除后(其实就是删除了入口),我们采用的软链接就不能再访问文件数据了。

软链接也叫符合链接,这个文件包含了另一个文件的路径名。可以任意文件或目录。

软链接图示

软链接与硬链接不同,他们不公用一个“钥匙”,而是再元数据那新建了一个inode(我所称的“钥匙”),如图,红色的小点就是。当我们采用p.txt来访问数据的时候,过程:从p.txt在元数据找到inode,这个里面指向q.txt,如何在从q.txt去元数据那找到“钥匙”,然后去数据那去找存储的数据。

当我们删除掉源文件q.txt

q.txt指向“钥匙”的链接断了,所以我们用p.txt就没法在访问数据了。

实例

接下来我们在centos7里面进行操作一波,这个软硬链接。

硬链接

我们先来一个硬链接,创建一个空文档,在里面写入一句代码,然后对他创建硬链接。

创建空文档:touch 文件名,进去文档写:vim 文件名,创建硬链接:ln 文件名 新文件名

先创建然后从硬链接访问,删除源文件然后再用硬链接还可以继续访问。

软链接

同样创建一个空文档,建立一个软链接:ln -s 文件名 新文件名

看完这些估计应该对这有了了解,鄙人不才,如有不对的地方清多多指教。

相关内容

热门资讯

Android studio2... [软件名称]: Android studio2022 [软件大小]: 1.00 GB [安装环境]:...
表格的进阶 系列文章目录 前端系列文章——传送门 HTML系列文章——传送门 文章目录系列文章目录html 结...
Vivado device窗口... 目录 一、前言 二、时钟site介绍 三、时钟site分布 四、时钟site驱动逻辑 一、前言 ...
数模笔记——论文写作 论文写作 各模块写作要点 数学建模论文的重要性 数学建模论文的写作是数学建模中重要的一个环节。数学建...
IDEA打印项目执行最终执行s... 一、下载插件1、MyBatis Log Plugin随着IDEA 升级到 2020.2 版本之后开始...
Harmony(鸿蒙)开发手机... Harmony环境使用Bee入门向导 一、添加jar包 将bee相关的3个jar包复制到entry包...
到底线程要怎么去编程?线程类有... 上篇文章我们介绍了到底什么是线程,线程与进程的区别,线程怎么去创建的五种...
linux环境下利用rsync... 文章目录前言插曲根据时间段同步按时间过滤文件使用 mtime 参数查找使用 newermt 进行更精...
学习周报3.19 文章目录前言文献阅读摘要简介问题定义方法结论克里金插值法(Kriging法࿰...
Java设计模式 03-原型模... 原型模式 一、克隆羊问题 现在有一只羊 tom,姓名为: tom, 年龄为࿱...
数据库select操作 插入数据时,一次插入多条数据,比多次插入多条同样的数据消耗时间少很多。 ...
搭建 Spring 源码阅读环... 1、下载gradle https://gradle.org/releases/ 解压到磁盘 2、配...
北斗星1.4排量百公里油耗(北... 本篇文章极速百科给大家谈谈北斗星1.4排量百公里油耗,以及北斗星14真实油耗72什么情况对应的知识点...
汽车安全性能排行榜(车辆安全性... 本篇文章极速百科给大家谈谈汽车安全性能排行榜,以及车辆安全性能排名对应的知识点,希望对各位有所帮助,...
门客是什么意思(君子不打上门客... 今天给各位分享门客是什么意思的知识,其中也会对君子不打上门客是什么意思进行解释,如果能碰巧解决你现在...
灶糖是啥(灶糖的功效和作用) ... 本篇文章极速百科给大家谈谈灶糖是啥,以及灶糖的功效和作用对应的知识点,希望对各位有所帮助,不要忘了收...
[CMake] CMake 进... CMake 进阶 代码生成 代码生成是指使用一些通用的描述文件,可以自动生成源代码&#...
文法的形式定义 一、序列的集合称为形式语言序列的集合称为形式语言二、形式语言的描述当语言是有穷集合时,...
人事部是干什么的(人力资源管理... 今天给各位分享人事部是干什么的的知识,其中也会对人力资源管理吃香吗进行解释,如果能碰巧解决你现在面临...
透明的反义词是什么(透明的反义... 本篇文章极速百科给大家谈谈透明的反义词是什么,以及透明的反义词是什么最佳答案对应的知识点,希望对各位...
清道夫鱼能吃吗(清道夫鱼能吃吗... 今天给各位分享清道夫鱼能吃吗的知识,其中也会对清道夫鱼能吃吗?有什么功效进行解释,如果能碰巧解决你现...
科研之友是什么(科研之友是干什... 本篇文章极速百科给大家谈谈科研之友是什么,以及科研之友是干什么的对应的知识点,希望对各位有所帮助,不...
Android framewo... 启动篇 android-12.0.0_r28\frameworks/base/services/ja...
Windows10及其Wind... 一、需求说明在日常实施运维工作中,通常需要设置指定的软件在Windows系统或Wind...
StampedLock 一、邮戳锁的介绍 邮戳锁(StampedLock)是一个java.util.concurrent.l...
宝马X5宝马X5最新报价-图片... 本篇文章极速百科给大家谈谈宝马X5宝马X5最新报价-图片-参数,以及宝马x5l报价及图片2021款对...
电机与减速机(电机与减速机如何... 本篇文章极速百科给大家谈谈电机与减速机,以及电机与减速机如何搭配对应的知识点,希望对各位有所帮助,不...
车标大全:这些汽车车标你全都认... 今天给各位分享车标大全:这些汽车车标你全都认识吗?的知识,其中也会对车标车标志大全及名字进行解释,如...
abcb式的成语(abcb式的... 本篇文章极速百科给大家谈谈abcb式的成语,以及abcb式的成语二年级对应的知识点,希望对各位有所帮...
string类(上) string类(上)1.标准库中的string类2.string类对象的...