Linux硬链接和软连接是什么?
在Linux操作系统中,文件管理是一个基本且重要的概念。其中,软链接(Symbolic Link)和硬链接(Hard Link)是文件系统中两种不同类型的链接方式,它们在文件管理和操作中扮演着重要的角色。
软链接
软链接也成为符号链接,类似于 Windows 中的快捷方式。它是一个特殊类型的文件,包含的是另一个文件路径名的文本指针。软链接可以跨文件系统链接到任何文件或目录。
硬链接
硬链接是指向文件系统中某个文件的实际物理位置的直接链接。在Linux中,文件实际上是存储在磁盘上的数据块(或inode)的引用。硬链接就是这些数据块的另一个名称或引用。创建硬链接相当于给文件增加了一个新的名字。
软链接
软链接是一种特殊类型的文件。它包含的不是文件的实际数据,而是指向另一个文件的路径名。这个路径名可以指向任意一个文件系统的任意文件或者目录,甚至可以指向一个不存在的文件。
当创建软链接时,系统会在文件系统中创建一个新的文件。因此软链接有自己的inode和数据块。但是这些数据块存储的不是文件的实际数据,而是目标路径的字符串。
当访问软链接时,系统会读取软链接文件中存储的路径信息,然后根据这个路径找到并访问目标文件。如果目标文件被移动或删除,软链接将失效,因为它存储的路径不再指向一个有效的文件。
硬链接
当创建一个硬链接时,实际上是在目录项中增加了一个新的文件名,这个新文件名指向同一个inode号。因此,原文件和硬链接共享同一个inode和数据块,任何对文件内容的修改都会反映在所有硬链接上。
每个inode有一个引用计数,表示有多少个文件名(硬链接)指向这个inode。当删除一个硬链接时,相应inode的引用计数减一。只有当引用计数降到零时,系统才会释放inode和数据块。
区
存储方式:硬链接直接指向文件的inode,而软链接是一个独立的文件,指向原始文件的路径。
跨文件系统:硬链接不能跨文件系统,软链接可以。
删除影响:删除硬链接的一个引用不会影响其他引用。删除软链接的源文件,软链接将失效。
inode号:硬链接拥有与原始文件相同的inode号,而软链接有自己的inode号。
存储和所有权:硬链接与原文件共享相同的权限和所有权,软链接则可能有不同的权限和所有权。
软链接:
跨文件系统的链接:当需要链接到不同文件系统中的文件时,使用软链接。
- 链接到目录:只有软链接可以链接到目录。
硬链接:
备份:硬链接常用于备份,因为它们不占用额外的磁盘空间(不需要额外存储数据和inode结构,但是需要存储目录项)。
文件重命名或移动:在重命名或移动文件时,硬链接可以保持文件的一致性。
多人共享:当多人需要对同一个文件进行操作的时候,如果每次都是直接操作原始文件,一旦有一个人执行了误删除,则该文件将立即永久消失。但如果每个人都在私人目录中创建一个该文件的硬链接,即使有一个人误删了他自己的文件,也不会导致原始文件被删除,大幅降低文件意外丢失的概率。
创建软链接
ln -s original.txt symlink.txt
创建硬链接
ln original.txt hardlink.txt
- 硬链接限制:不能对目录创建硬链接,也不能跨文件系统。
- 软链接路径:软链接的路径应该准确,否则链接将指向一个不存在的位置。
- 权限问题:软链接的权限总是lrwxrwxrwx,但实际访问权限取决于源文件。
- 备份和恢复:在备份和恢复时,软链接可能需要特别处理,以保持其指向正确的位置。
相关文章:
Linux硬链接和软连接是什么?
在Linux操作系统中,文件管理是一个基本且重要的概念。其中,软链接(Symbolic Link)和硬链接(Hard Link)是文件系统中两种不同类型的链接方式,它们在文件管理和操作中扮演着重要的角色。软链接 软…...
LangChain 23 Agents中的Tools用于增强和扩展智能代理agent的功能
LangChain系列文章 LangChain 实现给动物取名字,LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索I…...
VS2015编译GDAL3.2.0+opencl+C#
参考借鉴https://www.cnblogs.com/litou/p/15004877.html 参考借鉴https://www.cnblogs.com/xiaowangba/p/6313903.html 参考借鉴gdal、proj、geos、sqlite等在VS2015下编译和配置_vs2015编译sqlite3-CSDN博客 参考借鉴Windows下GDAL3.1.2编译 (VS2015)_gdal windows编译-CS…...
3、Linux_系统用户管理
1.Linux 用户管理 1.1概述 Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。root用户是系统默认创建的管理员账号。 1.2添加用户 语法 useradd […...
C语言指针详解上
1 野指针 int main01(){//野指针就是没有初始化的指针,指针的指向是随机的,不可以 操作野指针//int a 0;//指针p保存的地址一定是定义过的(向系统申请过的)int *p;//野指针*p 200;printf("%d\n",*p);system("pause");return 0;}2 空指针 空指针的作用…...
力扣面试150题 | 27.移除元素
力扣面试150题 | 27.移除元素 题目描述解题思路代码实现复杂度分析 题目描述 27.移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必…...
JAVA 通过get,post访问远程接口
get请求 参数拼接在url ?namevalue&sexvalue // httpurlhttp:127.0.0.1/project public static String doGet(String httpurl){HttpURLConnection connection nul;Inputstream is null;BufferedReader br null;String result null;//返回结果字…...
Spark例子
Spark例子 以下是一个简单的AI Spark例子: 假设我们有一个数据集,包含房屋大小、卧室数量和售价。我们想使用Spark来预测房屋售价。 首先,我们需要导入所需的库和数据。在这个例子中,我们将使用Pyspark。 python from pyspark…...
linux下ls和df卡死
1. strace看下卡在哪里 https://lokie.wang/article/43 strace ls strace df -h 2. 原因 https://segmentfault.com/a/1190000040620740 3. fuser 和 umount都不行,最后只能重启 重启机器还起不来了垃圾...
iOS(swiftui)——系统悬浮窗( 可在其他应用上显示,可实时更新内容)
因为ios系统对权限的限制是比较严格的,ios系统本身是不支持全局悬浮窗(可在其他app上显示)。在iphone14及之后的iPhone机型中提供了一个叫 灵动岛的功能,可以在手机上方可以添加一个悬浮窗显示内容并实时更新,但这个功能有很多局限性 如:需要iPhone14及之后的机型且系统…...
css弹窗动画效果,示例弹窗从底部弹出
从底部弹出来,有过渡动画效果 用max-height可以自适应内容的高度,当内容会超过最大高度时可以在弹窗里加个scroll-view 弹窗不能用v-if来隐藏,不然transition没效果,transition只能对已有dom元素起效果,所以用透明和v…...
STM32CubeIDE(CUBE-MX hal库)----RTC时钟,时钟实时显示
系列文章目录 STM32CubeIDE(CUBE-MX hal库)----初尝点亮小灯 STM32CubeIDE(CUBE-MX hal库)----按键控制 STM32CubeIDE(CUBE-MX hal库)----串口通信 STM32CubeIDE(CUBE-MX hal库)----定时器 STM32CubeIDE(CUBE-MX hal库)----蓝牙模块HC-05(详细配置) 前言…...
ubuntu 安装Nvidia驱动
官网下载 sudo bash NVIDIA。。。。。跟着b站机器人工匠阿杰即可。...
『亚马逊云科技产品测评』活动征文|基于亚马逊云EC2搭建PG开源数据库
授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 亚马逊EC2云服务器(Elastic Compute Cloud)是亚马…...
【开题报告】基于J2EE的高校水电费管理系统的设计与实现
1.选题背景 随着高校规模的扩大和信息化建设的深入,学生宿舍的水电费管理成为一项复杂而重要的任务。传统的水电费管理方式通常依赖于人工操作,存在着管理效率低下、数据处理繁琐、费用统计不准确等问题。因此,设计和实现一款基于J2EE的高校…...
Revisiting Proposal-based Object Detection阅读笔记
Revisiting Proposal-based Object Detection阅读笔记 论文地址:link Abstract For any object detector, the obtained box proposals or queries need to be classified and regressed towards ground truth boxes. 对于任何物体检测器来说,获得的…...
Docker部署NFS服务
创建基础镜像 mkdir /data/nfs -p chmod 755 /data/nfs# NFS默认端口: 111、2049、20048 docker run -d \ --privileged \ --name nfs_server \ -p 111:111/tcp \ -p 111:111/udp \ -p 2049:2049/tcp \ -p 2049:2049/udp \ -p 30001-30005:30001-30005/tcp \ -p 30001-30005:3…...
深度学习TensorFlow2基础知识学习后半部分
介绍几个重要操作: 1.范数 a tf.fill([1,2], value2.) b tf.norm(a)# 二范数#第二种计算方法 # 计算验证 a tf.square(a) log("a的平方:", a) a tf.reduce_sum(a) log("a平方后的和:", a) b tf.sqrt(a) log("a平方和后开根号:"…...
电脑系统重装Win10专业版操作教程
用户想给自己的电脑重新安装上Win10专业版系统,但不知道具体的重装步骤。接下来小编将详细介绍Win10系统重新安装的步骤方法,帮助更多的用户完成Win10专业版的重装,重装后用户即可体验到Win10专业版系统带来的丰富功能。 准备工作 1. 一台正常…...
打包Python项目
打包Python项目 本教程将指导您如何打包一个简单的Python项目。它将 向您展示如何添加必要的文件和结构来创建包,如何 构建包,以及如何将其上传到Python包索引(PyPI)。 尖端 如果您在运行本教程中的命令时遇到问题,请…...
看完就会:2026年最强AI论文写作软件榜单,AI工具一键写高质论文
2026 年实测 10 款主流 AI 论文工具,千笔AI以全流程覆盖 语义级降重 免费查重领跑综合榜;ThouPen 稳坐留学生毕业全流程工具头把交椅;免费工具中DeepSeek Scholar、豆包学术版表现亮眼,30 分钟即可生成万字高质量初稿࿰…...
DownKyi如何成为B站视频下载的智能管家?8K高清+批量处理全解析
DownKyi如何成为B站视频下载的智能管家?8K高清批量处理全解析 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等…...
Win11装Anaconda总卡住?试试这个Miniconda曲线救国法(附清华源配置)
Win11装Anaconda总卡住?试试这个Miniconda曲线救国法(附清华源配置) 最近在Windows 11上安装Anaconda时,不少开发者都遇到了进度条卡死或包提取失败的困扰。这个问题看似简单,却让很多数据科学初学者和Python开发者头疼…...
零基础极速上手:十分钟用AI建站工具做出你的第一个网站
# 痛点共情:完全不懂技术,真的能自己做出吗?\你可能连“域名”和“服务器”都分不清,看到代码就头疼,更别说设计排版了。但心里又确实需要个网站:不管是展示作品、推广小店,还是给简历加分。你担…...
从零搭建私有物联网网络:LoRaWAN服务器实战指南
从零搭建私有物联网网络:LoRaWAN服务器实战指南 【免费下载链接】lorawan-server Compact server for private LoRaWAN networks 项目地址: https://gitcode.com/gh_mirrors/lo/lorawan-server 在物联网部署浪潮中,私有服务器搭建已成为企业和开发…...
MSE、MAE、Binary/Categorical Cross-Entropy、HingeLoss五种损失函数的典型应用场景
目录第一类:回归任务(预测具体数值)👓1. MSE (均方误差) —— 重罚离群点👓2. MAE (平均绝对误差) —— 鲁棒性强第二类:分类任务(判断属于哪一类)👓3. Binary Cross-Ent…...
告别Keil,用VSCode+GCC+STM32CubeMX的Makefile在Windows上编译STM32F103(附完整配置流程)
从Keil到VSCode:打造现代化STM32开发环境全指南 在嵌入式开发领域,商业IDE(如Keil MDK)长期占据主导地位,但随着开源工具链的成熟和开发者对效率要求的提升,越来越多的工程师开始寻求更灵活、更现代化的开…...
PyTorch训练二分类模型时,你的损失函数为什么突然变成NaN了?排查BCELoss的5个坑
PyTorch训练二分类模型时,你的损失函数为什么突然变成NaN了?排查BCELoss的5个坑 深夜的调试台前,咖啡杯早已见底,屏幕上那个刺眼的"nan"却依然顽固地停留在损失值的位置。这不是第一次,也不会是最后一次——…...
告别Keil:用VS Code + EIDE打造高效C51开发环境
1. 为什么我们要放弃Keil? 如果你接触过C51单片机开发,Keil μVision这个名字一定不会陌生。作为单片机开发领域的"老前辈",Keil几乎成了教学和入门的标准工具。但说实话,每次打开那个灰蒙蒙的界面,我都感觉…...
深入解析FOC控制中的Clark/Park变换及其Matplotlib动态仿真实现
1. 从三相交流电到FOC控制的基础认知 第一次接触电机控制时,看到那些复杂的坐标变换公式确实让人头疼。但后来我发现,理解FOC(磁场定向控制)的核心,关键在于抓住两个关键点:为什么要做坐标变换和变换后能解…...
