【Linux】软硬链接

在这里插入图片描述

文章目录

  • 软链接
  • 硬链接
  • 软硬链接的使用场景:
    • 软链接的使用场景
    • 硬链接的应用场景
  • 总结

软链接

软链接是一种指向文件或目录的快捷方式,是文件系统中非常重要的功能。它类似于Windows中的快捷方式,但更灵活,可以跨文件系统创建。

ln操作: ln是 Linux 中用于创建链接文件的命令,主要支持创建 硬链接 和 软链接。

创建软链接:
创建一个txt结尾的空文本文件。
在这里插入图片描述

ln -s file.txt file

用上面这命令为file.txt创建软链接,软链接的名字是file。
在这里插入图片描述
查看一下这两个文件的inode:
在这里插入图片描述
可以看见这两个指向的是不同的inode,说明file是一个独立的文件。
在这里插入图片描述

我们向file中写入字符串,可以看见在file和file.txt中都能查看到。

软连接保存的是目标文件的路径,软链接就等同于Windows下的快捷方式,所以当我们修改file时,file.txt也会跟着改变,修改file.txt时,file也会跟着改变,软链接本质上底层保存的是对应文件路径,这个路径索引指定文件

硬链接

硬链接是指直接指向文件 inode 的链接,所有硬链接共享同一个 inode 和文件内容。硬链接在底层的机制与软链接不同,其主要特点在于它与目标文件紧密绑定。

创建硬链接:

ln file.txt file-hard

在这里插入图片描述
通过对比硬链接和原文件,硬链接本质上不是一个独立的文件,因为硬链接的inode和原文件的inode相同,可以看见中间还有一行数字是1,2,2这一行数字是引用计数,记录硬链接数,我们打开Linux的代码:
在这里插入图片描述
可以看见在Linux的代码中,inode这个结构体中有一个count,这个count就是用来记录硬链接数的,当有一个文件名索引到这个inode的时候这个count就是1,两个文件名索引到这个文件名,这个count就会++。

理解了软硬链接之后,聊一聊软硬链接的使用场景

软硬链接的使用场景:

软链接的使用场景

快捷方式
在这里插入图片描述上面这个图就是一个例子,Windows当中的快捷方式,存储的就是目标的路径,索引到目标位置。

硬链接的应用场景

首先我们来创建一空的目录。在这里插入图片描述
可以看见新创建的文件的硬链接计数为什么是2呢?
在这里插入图片描述
进入到empty中,发现当中有....指向的是当前路径,我们来看看.的inode和empty的inode。
在这里插入图片描述
可以看见.的inode和empty的inode是相同的,说明.是empty的硬链接,这里.和empty同时指向一个inode,所以硬链接计数是2.
我们在硬链接中创建一个空目录。
在这里插入图片描述
在empty创建了一个空目录,为什么硬链接计数会变为3呢?

我们打开新建文件:在这里插入图片描述
可以看见新建文件中有一个..,…是指向上一个文件的,而上一个文件就是empty,empty当中也也有一个.,这个指向的是本文件,也就是empty,三个文件名同事指向同一个inode,所以硬链接计数是3。,我们来对比一下inode:
在这里插入图片描述
可以看见三个文件名指向的确实是一个inode。

总结

软链接和硬链接是 Linux 文件系统中提供的两种链接方式,它们在功能和实现上有显著的区别。软链接通过路径指向目标文件,灵活性更强,可以跨文件系统,但目标文件被删除后会失效;硬链接直接指向文件的 inode,所有硬链接共享相同的文件数据,文件更改会同步,但不能跨文件系统且不能指向目录。

在实际应用中:

  • 软链接适合用于需要跨文件系统、指向目录或者希望链接易于修改的场景。
  • 硬链接则适用于在同一文件系统内需要保证文件数据持久存在的情况,例如备份或多点访问文件。

理解两者的特点和使用场景有助于在开发和管理文件系统时作出更优化的选择。

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

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

相关文章

操作系统(5)进程

一、定义与特点 定义:进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 特点: 动态性:进程是动态创建的,有它自身的生命周期,…

安宝特分享 | AR技术助力医院总院与分院间的远程面诊

随着科技的迅猛发展,增强现实(AR)技术在各行各业的应用愈发广泛,特别是在医疗领域,其潜力和价值正在被不断挖掘。在现代医疗环境中,患者常常面临“看病难、看病远、看病急”等诸多挑战,而安宝特…

CNCF云原生生态版图-分类指南(三)- 运行时

CNCF云原生生态版图-分类指南(三)- 运行时 CNCF云原生生态版图-分类指南三、运行时(Runtime)(一)云原生存储(Cloud Native Storage)1. 是什么?2. 解决什么问题&#xff1…

通俗易懂的 Nginx 反向代理 配置

通俗易懂的 Nginx 反向代理 配置 首先 root 与 alias 的区别 root 是直接拼接 root location location /i/ {root /data/w3; }当请求 /i/top.gif ,/data/w3/i/top.gif 会被返回。 alias 是用 alias 替换 location location /i/ {alias /data/w3/images/; }当请…

HiveQL命令(一)- 数据库操作

文章目录 前言一、数据库操作1. 创建数据库1.1 语法及解释1.2 创建数据库示例 2. 查看数据库2.1 查看所有数据库2.2 查看数据库信息2.2.1 语法及解释2.2.2 查看数据库信息示例 3. 切换数据库3.1 语法3.2 示例 4. 修改数据库4.1 语法4.2 示例 5. 删除数据库5.1 语法及解释5.2 示…

Ubuntu22.04安装docker desktop遇到的bug

1. 确认已启用 KVM 虚拟化 如果加载了模块,输出应该如下图。说明 Intel CPU 的 KVM 模块已开启。 否则在VMware开启宿主机虚拟化功能: 2. 下一步操作: Ubuntu | Docker Docs 3. 启动Docker桌面后发现账户登陆不上去: Sign in | …

FPGA实现GTP光口数据回环传输,基于Aurora 8b/10b编解码架构,提供2套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的 GT 高速接口解决方案 3、工程详细设计方案工程设计原理框图用户数据发送模块基于GTP高速接口的数据回环传输架构GTP IP 简介GTP 基本结构GTP 发送和接收…

(二)多智能体强化学习

目录 前言 一、多智能体强化学习的概念 二、多智能体面临的问题 三、现有算法简介 总结 前言 基于上一篇文章对于强化学习基础概念的介绍,本篇文章针对多智能体强化学习进行介绍和总结,帮助大家了解多智能体的基本概念以及算法,方便大家…

【Linux网络编程】传输协议UDP

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系…

汽车车牌识别数据集,支持YOLO,COCO,VOC格式的标注,8493张图片,可识别多种环境下的车牌

汽车车牌识别数据集,支持YOLO,COCO,VOC格式的标注,8493张图片,可识别多种环境下的车牌 数据集分割 训练组82% 6994图片 有效集12% 999图片 测试集6% 500图片 预处理 自动…

流网络复习笔记

所以这里的19是118-019 <s , w> 1/3就是容量是3&#xff0c;流量是1 残留网络就是两个相对箭头上都是剩余对应方向还能同行的流量 所以s->w 3-1 2, w->s 1

Mac m2电脑上安装单机Hadoop(伪集群)

1. 引言 本教程旨在介绍在Mac 电脑上安装Hadoop 2. 前提条件 2.1 安装JDK Mac电脑上安装Hadoop&#xff0c;必须首先安装JDK&#xff0c;并配置环境变量&#xff08;此处不做详细描述&#xff09; 2.2 配置ssh环境 关闭防火墙 在Mac下配置ssh环境&#xff0c;防止后面启…

使用html和JavaScript实现一个简易的物业管理系统

码实现了一个简易的物业管理系统&#xff0c;主要使用了以下技术和功能&#xff1a; 1.主要技术 使用的技术&#xff1a; HTML: 用于构建网页的基本结构。包括表单、表格、按钮等元素。 CSS: 用于美化网页的外观和布局。设置字体、颜色、边距、对齐方式等样式。 JavaScript…

2000-2022年各省产业结构高级化、产业结构合理化指数(两种方法)(含原始数据+计算过程+计算结果)

2000-2022年各省产业结构高级化、产业结构合理化指数&#xff08;两种方法&#xff09;&#xff08;含原始数据计算过程计算结果&#xff09; 1、时间&#xff1a;2000-2022年 2、来源&#xff1a;统计年鉴、各省年鉴、人口和就业年鉴 3、指标&#xff1a;GDP、第一产业增加…

神经网络基础-初识神经网络

人工神经网络&#xff08; Artificial Neural Network&#xff0c; 简写为ANN&#xff09;也简称为神经网络&#xff08;NN&#xff09;&#xff0c;是一种模仿生物神经网络结构和功能的计算模型。人脑可以看做是一个生物神经网络&#xff0c;由众多的神经元连接而成。各个神经…

Mac安装brew的终极方法

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"按回车后&#xff0c;根据提示操作&#xff1a; 输入镜像序号&#xff08;1-5都可以&#xff09;输入Y&#xff0c;回车等待brew安装完成即可。 M系列芯片亲测有效&#x…

vscode借助插件调试OpenFoam的正确的.vscode配置文件

正确的备份文件位置&#xff1a; /home/jie/桌面/理解openfoam/正确的调试爆轰单进程案例/mydebugblastFoam 调试爆轰案例流体 并且工作区和用户区都是openfoam-7版本 问题&#xff1a;F5以debug模式启动后不停在断点 解决方法&#xff1a; 这里备份一下.vsode正确的配置&…

MATLAB2021B APP seriallist 串口通信

文章目录 前言一、项目需要二、使用步骤1.查找串口填写到查找列表2.发送函数3. 接收函数4.检测串口按钮5.选择串口号 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 项目需要&#xff1a; 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面…

TIM输入捕获---STM

一、简介 IC输入捕获 输入捕获模式下&#xff0c;当通道输入引脚出现指定电平跳变时&#xff0c;当前CNT的值将被锁存在CCR中&#xff0c;可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数 每个高级定时器和通用定时器都拥有4个输入捕获通道 可配置为PWMI模…

Linux驱动开发(14):PWM子系统–pwm波形输出实验

PWM子系统用于管理PWM波的输出&#xff0c;与我们之前学习的其他子系统类似,PWM具体实现代码由芯片厂商提供并默认编译进内核&#xff0c; 而我们可以使用内核&#xff08;pwm子系统&#xff09;提供的一些接口函数来实现具体的功能&#xff0c;例如使用PWM波控制显示屏的背光、…