当前位置: 首页 > article >正文

Linux 中的硬链接和软连接是什么,二者有什么区别?

在 Linux 文件系统中**硬链接Hard Link和软链接Soft Link又称符号链接 Symbolic Link**是两种不同的文件引用方式。它们都允许用户通过不同的路径访问同一个文件内容但它们的实现机制、限制和使用场景有显著区别。一、核心概念1. 硬链接 (Hard Link)定义硬链接是同一个 inode索引节点的多个目录项文件名。本质它不是创建一个新文件而是给现有的文件起一个“别名”。在文件系统中硬链接和原文件完全平等没有“原文件”和“链接文件”之分。inode硬链接与原文件共享同一个 inode 号。数据块共享同一个数据块。2. 软链接 (Soft Link / Symbolic Link)定义软链接是一个特殊的文件其内容存储的是目标文件的路径。本质它类似于 Windows 中的“快捷方式”。如果原文件被删除软链接就会失效变成“死链”。inode软链接有自己独立的 inode 号和数据块存储路径字符串。数据块不共享数据块只是指向原文件的路径。二、核心区别对比表特性硬链接 (Hard Link)软链接 (Soft Link)inode 号相同(与原文件一致)不同(有自己的 inode)文件大小与原文件相同 (显示为原文件大小)显示为路径字符串的长度跨文件系统不支持(必须在同一分区/磁盘)支持(可以跨分区、跨磁盘)跨目录支持 (但不能跨文件系统)支持链接目录不支持(通常禁止链接目录防止循环)支持(可以链接目录)原文件删除后内容依然保留(只要还有一个链接存在)链接失效(变成死链无法访问)创建命令ln 源文件 链接名ln -s 源文件 链接名权限控制继承原文件权限 (实际上是同一个文件)独立权限 (但访问时受原文件权限限制)适用场景备份、节省空间、防止误删快捷方式、跨分区链接、链接目录三、深入原理解析1. 硬链接的机制Linux 文件系统通过inode来管理文件。当你创建一个文件时系统分配一个 inode并在目录中创建一个条目文件名 - inode 号。硬链接只是在目录中增加了一个新的条目指向同一个 inode。inode 中有一个链接计数 (Link Count)字段。创建硬链接时计数 1。删除一个硬链接包括原文件名时计数 -1。只有当链接计数归零时系统才会真正释放 inode 和数据块文件内容才会被删除。2. 软链接的机制软链接是一个独立的文件拥有自己的 inode。这个文件的内容是一个字符串即目标文件的路径如/home/user/data.txt。当你访问软链接时内核会读取这个路径字符串然后去查找该路径对应的 inode。如果目标文件被删除路径字符串依然存在但指向的目标不存在了因此链接失效。四、实战演示1. 创建硬链接# 创建原文件echoHello Worldoriginal.txt# 创建硬链接lnoriginal.txt hard_link.txt# 查看 inode 和链接数ls-lioriginal.txt hard_link.txt输出示例123456 -rw-r--r-- 2 user user 12 Mar 31 10:00 hard_link.txt 123456 -rw-r--r-- 2 user user 12 Mar 31 10:00 original.txt注意两者的 inode 号都是123456相同。权限位后的数字2表示链接数Link Count为 2。删除测试rmoriginal.txtcathard_link.txt结果hard_link.txt依然可以正常读取内容 “Hello World”。因为 inode 的链接数从 2 变为 1数据未被删除。2. 创建软链接# 创建原文件echoHello Worldoriginal.txt# 创建软链接 (-s 参数)ln-soriginal.txt soft_link.txt# 查看 inode 和链接数ls-lioriginal.txt soft_link.txt输出示例123456 -rw-r--r-- 1 user user 12 Mar 31 10:00 original.txt 789012 lrwxrwxrwx 1 user user 13 Mar 31 10:00 soft_link.txt - original.txt注意inode 号不同 (123456vs789012)。软链接的文件大小是13(路径字符串 “original.txt” 的长度)。权限位第一个字符是l(link)。箭头-指向目标文件。删除测试rmoriginal.txtcatsoft_link.txt结果报错No such file or directory。软链接变成了死链。3. 跨文件系统测试假设你有两个分区/dev/sda1(挂载点/home) 和/dev/sdb1(挂载点/data)。# 尝试在 /home 创建指向 /data 的硬链接ln/data/file.txt /home/hard_link.txt# 结果报错 hard link not allowed for directory 或 cross-device link# 尝试创建软链接ln-s/data/file.txt /home/soft_link.txt# 结果成功五、使用场景建议何时使用硬链接防止误删重要文件可以创建一个硬链接即使删除了原文件名数据依然安全。节省空间同分区在同一个分区内多个文件名指向同一份数据不占用额外磁盘空间除了目录项。版本控制某些备份工具如rsync --hard-links利用硬链接来节省备份空间未变化的文件只存一份。何时使用软链接跨分区/跨磁盘这是硬链接做不到的。链接目录硬链接通常不能链接目录防止文件系统循环软链接可以。快捷方式类似于 Windows 的快捷方式方便访问深层目录下的文件。版本管理例如python指向python3.9升级时只需修改软链接指向新版本无需修改所有调用脚本。临时链接原文件可能移动或删除软链接失效是预期的行为。六、总结硬链接同一个文件的多个名字共享 inode同分区删原文件不影响。软链接指向文件路径的快捷方式独立 inode跨分区删原文件则失效。一句话口诀硬链接是“分身有术同根同源”软链接是“指鹿为马路断则亡”。

相关文章:

Linux 中的硬链接和软连接是什么,二者有什么区别?

在 Linux 文件系统中,**硬链接(Hard Link)和软链接(Soft Link,又称符号链接 Symbolic Link)**是两种不同的文件引用方式。它们都允许用户通过不同的路径访问同一个文件内容,但它们的实现机制、限…...

SiameseUIE中文-base效果对比:在CLUE-NER和COTE-ABSA双基准测试

SiameseUIE中文-base效果对比:在CLUE-NER和COTE-ABSA双基准测试 想找一个开箱即用、效果又好的中文信息抽取工具?今天我们来聊聊阿里巴巴达摩院出品的SiameseUIE中文-base模型。这可不是一个普通的模型,它是一个“通用信息抽取”模型&#x…...

快速体验WAN2.2文生视频:ComfyUI预置工作流,2分钟生成测试视频

快速体验WAN2.2文生视频:ComfyUI预置工作流,2分钟生成测试视频 1. 为什么选择WAN2.2文生视频工作流 如果你正在寻找一个简单易用、效果出色的文生视频工具,WAN2.2文生视频工作流绝对值得一试。这个预置在ComfyUI中的工作流,让视…...

Z-Image Atelier 生成动态效果预览:通过序列图像模拟简单动画过程

Z-Image Atelier 生成动态效果预览:通过序列图像模拟简单动画过程 最近在玩一个挺有意思的AI图像工具,叫Z-Image Atelier。它最吸引我的地方,不是生成单张多么精美的图片,而是它能帮你“脑补”出一段动态过程。简单来说&#xff…...

OFA模型在VMware虚拟机中的开发测试环境搭建

OFA模型在VMware虚拟机中的开发测试环境搭建 对于很多刚接触AI模型开发的个人开发者或学生来说,最大的门槛往往不是算法本身,而是硬件。一块性能足够的独立GPU价格不菲,让很多人在起步阶段就望而却步。难道没有物理GPU,就真的没法…...

LFM2.5-1.2B-Thinking-GGUF部署教程:Ubuntu/CentOS/Debian三平台通用安装步骤

LFM2.5-1.2B-Thinking-GGUF部署教程:Ubuntu/CentOS/Debian三平台通用安装步骤 1. 平台简介 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型,特别适合在资源有限的环境中快速部署。该镜像内置了GGUF模型文件和llama.cpp运行时&#xff…...

Chandra OCR多平台部署指南:Windows WSL2/Mac Metal/Linux Docker全搞定

Chandra OCR多平台部署指南:Windows WSL2/Mac Metal/Linux Docker全搞定 1. Chandra OCR核心能力解析 Chandra是Datalab.to在2025年10月开源的布局感知OCR模型,与传统OCR工具最大的区别在于它能完整保留文档的排版结构信息。想象一下:当你扫…...

音乐自由之路:Unlock-Music技术突破实战指南

音乐自由之路:Unlock-Music技术突破实战指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://gitcod…...

DeerFlow效果展示:自动生成的深度研究报告与播客内容惊艳分享

DeerFlow效果展示:自动生成的深度研究报告与播客内容惊艳分享 1. DeerFlow核心能力概览 DeerFlow作为一款深度研究智能助手,整合了语言模型、网络搜索和代码执行能力,能够自动完成从信息收集到内容生成的全流程工作。其核心功能亮点包括&am…...

Claude Code本地安装与配置国产智谱模型 (保姆级教程)

目录 一、安装 二、验证安装完整性 三、绕过区域限制协议 1. 创建专属启动脚本 2. 配置系统环境变量 3. 通过脚本启动 四、配置国产智普模型 今天给大家带来一期非常实用的 AI 工具部署教程。作为开发者,善用 AI 工具能极大提升我们的日常编码和解决问题的效…...

SAP移动类型全解析:从收货到移库,一文搞懂库存管理核心配置

SAP移动类型实战指南:解锁库存管理的核心密码 当你第一次在SAP系统中执行货物移动时,面对上百种移动类型代码,是否感到无从下手?作为全球500强企业广泛采用的ERP系统,SAP的库存管理模块以其严谨性和灵活性著称&#xf…...

Lingbot-Depth-Pretrain-ViTL-14在互联网内容审核中的深度场景理解应用

Lingbot-Depth-Pretrain-ViTL-14在互联网内容审核中的深度场景理解应用 每天,互联网上都会产生数以亿计的图片和视频。对于平台的内容审核团队来说,这既是流量的盛宴,也是巨大的挑战。传统的审核方式,无论是依赖人工还是基于二维…...

C++的std--allocator_traits分配器特性与自定义内存管理的适配

C标准库中的内存管理一直是个既基础又复杂的主题。std::allocator_traits作为C11引入的分配器特性模板,为自定义内存管理提供了统一的适配接口,让开发者能在不重写整套分配逻辑的情况下,灵活扩展内存管理策略。无论是实现高性能内存池&#x…...

从零开始玩转translategemma-27b-it:Ollama环境搭建与提示词详解

从零开始玩转translategemma-27b-it:Ollama环境搭建与提示词详解 1. 环境准备与快速部署 想要体验强大的图文翻译能力,首先需要搭建好运行环境。translategemma-27b-it是一个基于Ollama部署的翻译模型,支持文本和图片的翻译功能。 1.1 系统…...

Vue3 + FFmpeg.wasm 实战:5分钟搞定浏览器端视频格式转换(附完整代码)

Vue3 FFmpeg.wasm:浏览器端视频处理的革命性方案 当现代Web应用越来越依赖多媒体处理能力时,传统依赖后端转码的方案暴露出明显短板:上传耗时、服务器压力大、隐私数据外流风险。而FFmpeg.wasm的出现彻底改变了这一局面——这个基于WebAssem…...

SPIRAN ART SUMMONER图像生成前端展示效果优化技巧

SPIRAN ART SUMMONER图像生成前端展示效果优化技巧 1. 引言 你有没有遇到过这种情况:用SPIRAN ART SUMMONER生成了超棒的图片,但在网站上展示时却加载缓慢,用户还没看到效果就流失了?或者图片显示不完整,影响了整体的…...

S2-Pro+C语言教学系统:代码逻辑讲解与典型错误自动纠正

S2-ProC语言教学系统:代码逻辑讲解与典型错误自动纠正 1. 智能编程助教初体验 第一次看到S2-Pro在C语言教学中的应用效果时,确实让人眼前一亮。想象一下,当学生提交一段指针运算代码后,系统不仅能指出错误,还能像经验…...

Word文档自动更新日期技巧

设置Word文档自动显示当天日期打开Word文档后,可以通过插入日期字段实现每次打开时自动更新为当天日期。方法1:使用日期字段在Word文档中定位光标到需要显示日期的位置。点击菜单栏"插入"→"文本"→"日期和时间"。在弹出的…...

Graphormer部署指南:3.7GB纯Transformer图神经网络GPU快速启动

Graphormer部署指南:3.7GB纯Transformer图神经网络GPU快速启动 1. 项目概述 Graphormer是一种基于纯Transformer架构的图神经网络,专门为分子图(原子-键结构)的全局结构建模与属性预测而设计。这个3.7GB大小的模型在OGB、PCQM4M…...

TDengine IDMP 工业数据建模 —— 数据标准化

3.4 数据标准化 工业环境通常从多个数据源采集数据,这些数据往往命名不一致、物理单位各异、数据结构不同。如果没有标准化,跨资产分析、AI 生成洞察和数据汇聚将变得不可靠甚至无法实现。TDengine IDMP 提供了多种机制,对整个资产模型中的数…...

Git-RSCLIP入门到精通:从基础地物识别到复杂场景分析全流程解析

Git-RSCLIP入门到精通:从基础地物识别到复杂场景分析全流程解析 1. 遥感智能分析的新利器 在遥感图像分析领域,传统方法往往需要大量标注数据和复杂的模型训练流程。Git-RSCLIP的出现彻底改变了这一局面,它基于先进的SigLIP架构&#xff0c…...

饭局下半场,别人忙着解酒,我从开局就赢在酒杯里

1. 饭局如战场,后半场才是真正的考验任何一场饭局,都可以被分成两个阶段。前半场,推杯换盏,人人意气风发。酒过三巡,大家还在比拼谁喝得多、谁喝得猛,气氛热烈而体面。但到了后半场,画风开始分裂…...

等保三级Java安全改造全周期实录,从代码审计到渗透验证的12个生死关卡

第一章:等保三级Java安全改造的合规基线与生命周期全景图等保三级对Java应用提出了覆盖身份鉴别、访问控制、安全审计、通信保密性、代码安全及可信执行环境的全维度要求。其合规基线并非静态清单,而是贯穿需求分析、设计开发、测试验证、上线部署与持续…...

Wan2.2-I2V-A14B企业应用:法律文书解读AI动画视频生成系统

Wan2.2-I2V-A14B企业应用:法律文书解读AI动画视频生成系统 1. 系统概述与核心价值 法律行业每天需要处理大量文书材料,传统的人工解读和可视化呈现方式效率低下且成本高昂。Wan2.2-I2V-A14B法律文书解读AI动画视频生成系统正是为解决这一痛点而生。 这…...

GAN训练过程可视化神器对比:GAN Lab和TensorFlow Playground到底怎么选?

GAN训练可视化工具深度评测:从交互设计到教学效果的全面对比 当开发者第一次接触生成对抗网络(GAN)时,往往会被其复杂的对抗训练机制所困扰。传统的静态图表和数学公式很难直观展示生成器与判别器之间微妙的博弈过程。这正是可视化…...

Enhancing LLM Reasoning with Knowledge Graphs: A Faithful and Interpretable Approach

1. 为什么需要知识图谱增强LLM推理 最近两年,大型语言模型(LLM)的表现确实让人惊艳。我测试过GPT-4在代码生成、文案创作等场景的表现,效果确实超出预期。但当我尝试用LLM做知识密集型任务时,比如回答"贾斯汀比伯…...

李慕婉-仙逆-造相Z-Turbo AI核心原理科普:如何用Transformer理解并生成人类语言

李慕婉-仙逆-造相Z-Turbo AI核心原理科普:如何用Transformer理解并生成人类语言 你有没有想过,当你和“李慕婉-仙逆-造相Z-Turbo”这样的AI模型对话时,它到底是怎么“听懂”你的话,又“想”出那些回答的?它不像我们人…...

嵌入式 - shell 常用语法简单总结

初步使用#!bin/bashecho "Hello world!"echo# shellvim helloworld.shchmod ux helloworld.sh# 在当前bash运行. helloworld.shsource helloworld.sh# 在子bash中运行,无法修改当前shell的变量./helloworld.shLinux中工具链的配置​ ~/.bashrc用于定义当前…...

基于物理信息神经网络的Burgers-Fisher方程求解方法研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

SEO_SEO优化常见误区及正确操作指南

SEO优化常见误区 在互联网时代,SEO(搜索引擎优化)已成为网站运营中不可或缺的一部分。很多人在实际操作中却常常犯下一些常见的SEO优化误区,这不仅影响了网站的流量,也可能导致搜索引擎的惩罚。下面我们将详细分析这些…...