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

Linux 软链接和硬链接详解:ln 命令背后的 inode 原理

Linux 软链接和硬链接详解ln 命令背后的 inode 原理1. 前言Linux 中经常会看到链接文件例如/bin -/usr/bin python -python3 current -/opt/app/releases/v2Linux 链接主要有两种软链接symbolic link 硬链接hard link创建链接使用ln命令。本文重点讲清楚inode 是什么软链接是什么硬链接是什么二者有什么区别删除源文件后分别会怎样实际项目中怎么用。2. inode 是什么Linux 文件可以简单理解为两部分文件名 inode文件名保存在目录中。inode 保存文件的元数据和数据块位置。inode 中常见信息包括文件类型权限所属用户所属用户组文件大小时间戳数据块位置硬链接数量。查看 inodels-ifile.txt查看详细信息statfile.txt3. 硬链接是什么硬链接可以理解为多个文件名指向同一个 inode创建硬链接lnsource.txt hard.txt查看ls-lisource.txt hard.txt可能输出123456-rw-r--r--2user user100source.txt123456-rw-r--r--2user user100hard.txt两个文件 inode 一样说明它们本质上指向同一份文件数据。修改任意一个echohellohard.txtcatsource.txt会发现内容也变了。4. 删除源文件后硬链接还在吗创建文件和硬链接echolinuxsource.txtlnsource.txt hard.txt删除源文件名rmsource.txt查看硬链接cathard.txt仍然可以读取内容。原因是rm 删除的是一个文件名不是立即删除 inode 数据。 只要还有硬链接指向 inode数据就还在。只有硬链接数量变成 0文件数据才会真正释放。5. 软链接是什么软链接也叫符号链接。它更像快捷方式保存的是目标路径。创建软链接ln-ssource.txt soft.txt查看ls-lsoft.txt输出soft.txt -source.txt查看 inodels-lisource.txt soft.txt可能看到两个 inode 不同。这说明软链接是一个独立文件只是里面保存了目标路径。6. 删除源文件后软链接会怎样创建软链接echohellosource.txtln-ssource.txt soft.txt删除源文件rmsource.txt再访问catsoft.txt会报错No such file or directory此时软链接还在但目标路径不存在所以它变成了断链。7. 软链接和硬链接对比对比项软链接硬链接是否有独立 inode有没有和源文件共用 inode指向对象路径inode能否跨文件系统可以通常不可以能否链接目录可以普通用户通常不可以删除源文件后失效仍可访问类似概念快捷方式同一文件的多个名字创建命令ln -sln一句话总结软链接指向路径硬链接指向 inode。8. ln 命令常用写法创建硬链接lnsource.txt hard.txt创建软链接ln-ssource.txt soft.txt强制更新软链接ln-sfn/opt/app/releases/v2 /opt/app/current常用参数参数作用-s创建软链接-f强制覆盖-n把已有软链接当作普通文件处理-v显示过程查看链接指向readlink soft.txt readlink-fsoft.txt9. 为什么硬链接不能跨文件系统硬链接指向 inode。inode 编号只在当前文件系统内部有意义。不同磁盘分区或不同文件系统中inode 编号可能重复。所以硬链接通常不能跨文件系统。如果尝试跨文件系统创建硬链接可能报错Invalid cross-device link软链接不受这个限制因为它保存的是路径。10. 为什么硬链接通常不能链接目录如果允许普通用户随意给目录创建硬链接可能形成目录循环。这会让遍历、备份、删除都变得复杂。所以普通用户通常不能给目录创建硬链接。如果要链接目录使用软链接ln-s/var/log logs进入cdlogs实际上进入的是/var/log。11. 实际使用场景11.1 版本切换/opt/app/releases/v1 /opt/app/releases/v2 /opt/app/current -/opt/app/releases/v2切换版本ln-sfn/opt/app/releases/v1 /opt/app/current这种方式常用于部署和回滚。11.2 配置启用Nginx 常见结构/etc/nginx/sites-available/demo.conf /etc/nginx/sites-enabled/demo.conf -../sites-available/demo.conf启用配置ln-s../sites-available/demo.conf /etc/nginx/sites-enabled/demo.conf11.3 避免重复存储同一大文件需要多个名字时可以用硬链接lnbigfile.dat backup_bigfile.dat注意修改任意一个都会影响同一份数据。12. 常见问题12.1 如何判断是不是软链接ls-lfile如果开头是llrwxrwxrwx就是软链接。12.2 删除软链接会删除源文件吗不会。rmsoft.txt只删除软链接本身。但要注意目录软链接后面不要随便加/后再rm -rf否则可能进入目标目录删除内容。12.3 如何找同 inode 的硬链接查看 inodels-ifile.txt查找find/path-inum12345613. 小结软链接和硬链接核心区别软链接指向路径 硬链接指向 inode常用命令lnsourcehardlinkln-ssourcesoftlinkls-listatfilereadlinklinkreadlink-flink选择建议链接目录用软链接 跨文件系统用软链接 版本切换用软链接 同一文件多个名字可用硬链接 避免重复存储大文件可用硬链接理解 inode 后Linux 文件、链接、删除、磁盘占用之间的关系会清楚很多。

相关文章:

Linux 软链接和硬链接详解:ln 命令背后的 inode 原理

Linux 软链接和硬链接详解:ln 命令背后的 inode 原理 1. 前言 Linux 中经常会看到链接文件,例如: /bin -> /usr/bin python -> python3 current -> /opt/app/releases/v2Linux 链接主要有两种: 软链接:symbol…...

实战指南:Happy Island Designer 的深度应用与优化

实战指南:Happy Island Designer 的深度应用与优化 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal Crossing)启发…...

Safe Exam Browser 虚拟化检测绕过技术深度实践

Safe Exam Browser 虚拟化检测绕过技术深度实践 【免费下载链接】safe-exam-browser-bypass A VM and display detection bypass for SEB. 项目地址: https://gitcode.com/gh_mirrors/sa/safe-exam-browser-bypass 在现代教育技术领域,Safe Exam Browser&…...

《Java 100 天进阶之路》第32篇:Java常用工具类(Objects、Collections、Arrays深入)

第32篇:Java常用工具类(Objects、Collections、Arrays深入) 📌 系列导航:《Java 100 天进阶之路》完整目录 | ⬅️ 上一篇:第31篇:Java数组详解 | ➡️ 下一篇:第33篇:Ja…...

初创团队如何借助Taotoken以低成本快速验证AI产品创意

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创团队如何借助Taotoken以低成本快速验证AI产品创意 对于资源有限的初创团队而言,验证一个AI产品创意的核心挑战往往…...

10分钟掌握D3KeyHelper:告别手酸,暗黑3游戏效率翻倍的终极指南

10分钟掌握D3KeyHelper:告别手酸,暗黑3游戏效率翻倍的终极指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 你是否曾在《暗…...

3分钟学会:如何在浏览器中零服务器依赖将HTML转为Word文档

3分钟学会:如何在浏览器中零服务器依赖将HTML转为Word文档 【免费下载链接】html-docx-js Converts HTML documents to DOCX in the browser 项目地址: https://gitcode.com/gh_mirrors/ht/html-docx-js 还在为HTML内容导出Word文档而烦恼吗?html…...

024、NPU指令集架构(ISA)概述:从CISC到VLIW

024、NPU指令集架构(ISA)概述:从CISC到VLIW 去年冬天调试一块国产NPU芯片的卷积算子,跑ResNet-50前向推理,死活比理论算力低了一个数量级。抓了三天波形,最后发现是指令发射槽的冲突——两条MAC指令争同一个数据总线,硬件自动插入三个空泡周期。那一刻我盯着逻辑分析仪…...

RedisDesktopManager Windows版:3分钟掌握免费Redis可视化工具,告别命令行操作!

RedisDesktopManager Windows版:3分钟掌握免费Redis可视化工具,告别命令行操作! 【免费下载链接】RedisDesktopManager-Windows RedisDesktopManager Windows版本 项目地址: https://gitcode.com/gh_mirrors/re/RedisDesktopManager-Window…...

Android Compose 图层的合成 : BlendMode

1. 图形的合成是什么 ? Compose中,图层的合成,通过BlendMode来控制 “显示谁、保留哪部分”,常用于裁剪、遮罩、图层叠加。 1.1 初始界面 Preview Composable fun MyBlendModeTest() {Box {Box(Modifier.size(100.dp).background(Color.R…...

023、深度可分离卷积:MobileNet背后的计算优化

深度可分离卷积:MobileNet背后的计算优化 一个让我加了两天班的bug 去年调试一块基于Cortex-M7的AI推理引擎,跑MobileNetV1时发现推理速度比理论计算慢了整整一个数量级。当时我盯着逻辑分析仪上的波形,CPU在卷积层卡了将近300ms——这不对劲,理论计算应该只要30ms。 排…...

Apple Silicon Mac 电池管理的终极解决方案:Battery Toolkit 完整指南

Apple Silicon Mac 电池管理的终极解决方案:Battery Toolkit 完整指南 【免费下载链接】Battery-Toolkit Control the platform power state of your Apple Silicon Mac. 项目地址: https://gitcode.com/gh_mirrors/ba/Battery-Toolkit 在当今移动办公时代&a…...

免费岛屿设计终极指南:5分钟快速掌握Happy Island Designer

免费岛屿设计终极指南:5分钟快速掌握Happy Island Designer 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal Cros…...

QQ群数据采集终极教程:5分钟掌握批量抓取技巧

QQ群数据采集终极教程:5分钟掌握批量抓取技巧 【免费下载链接】QQ-Groups-Spider QQ Groups Spider(QQ 群爬虫) 项目地址: https://gitcode.com/gh_mirrors/qq/QQ-Groups-Spider 还在为手动收集QQ群信息而烦恼吗?QQ-Groups…...

Python爬虫避坑手册:10年爬取经验总结,看完再也不会被封IP

做爬虫这么多年,我见过太多新手从入门到放弃,不是因为学不会Python,而是被各种反爬机制虐得怀疑人生。 我刚入行的时候,写的第一个爬虫是爬某电商网站的商品价格。当时觉得爬虫不就是发个请求,解析个HTML吗?结果代码刚跑了5分钟,IP就被封了。我当时还傻乎乎地重启路由器…...

抖音批量下载工具:高效获取用户主页全作品的专业解决方案

抖音批量下载工具:高效获取用户主页全作品的专业解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...

【独家披露】DeepSeek灰度发布SLI/SLO基线标准:99.95%可用性背后的4层验证漏斗

更多请点击: https://codechina.net 第一章:DeepSeek灰度发布策略全景图 DeepSeek模型服务的灰度发布并非简单的流量切分,而是一套融合可观测性、渐进式验证与多维熔断机制的工程化闭环体系。其核心目标是在保障线上推理稳定性的同时&#x…...

OpenVSP飞机参数化设计:从零到一的完整建模与气动分析指南

OpenVSP飞机参数化设计:从零到一的完整建模与气动分析指南 【免费下载链接】OpenVSP A parametric aircraft geometry tool 项目地址: https://gitcode.com/gh_mirrors/ope/OpenVSP OpenVSP是一款由NASA开发的免费开源飞机参数化设计工具,它让航空…...

免费岛屿设计工具终极指南:Happy Island Designer 完整教程 [特殊字符]️

免费岛屿设计工具终极指南:Happy Island Designer 完整教程 🏝️ 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友…...

代码跑偏白盒补漏:判定节点覆盖全路径测试

位于程序逻辑分叉处,起着关键开通作用的判定节点,意义无比重大。于程序运行进程里,每一条if语句、else语句以及switch语句背后,事实上都暗藏着一条独具特色且彼此独立的执行回路。而测试覆盖的核心使命,就是要把这些回…...

思源宋体完全免费商用指南:7种字重中文开源字体终极教程

思源宋体完全免费商用指南:7种字重中文开源字体终极教程 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 想要为你的中文设计项目找到一款既专业又完全免费的高质量字体吗&a…...

别再只会用spline了!MATLAB csape函数详解:从自然边界到夹持边界的实战选择

MATLAB csape函数深度解析:从自然边界到夹持边界的工程实践 在工程仿真和科学计算领域,数据插值是一个永恒的话题。当我们面对一组离散的实验数据或仿真结果时,如何构建一条光滑的曲线来准确反映数据背后的物理规律?这个问题困扰…...

从Bing日志到学术基准:MS MARCO数据集的前世今生与你的信息检索实验

从Bing日志到学术基准:MS MARCO数据集的前世今生与你的信息检索实验 当你在深夜调试信息检索模型时,是否曾好奇过那些基准数据集背后的故事?MS MARCO——这个让无数研究者又爱又恨的数据集,最初只是Bing搜索引擎日志中的普通用户查…...

2023B卷,最佳植树距离

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:华为OD面试 文章目录 一、🍀前言 1.1 ☘️题目详情 1.2 ☘️参考解题答案 一、🍀前言 2023B卷,最佳植树距离。 1.1 ☘️题目详情 题目: 小明在直…...

如何将B站缓存视频从m4s格式无损转换为通用MP4?

如何将B站缓存视频从m4s格式无损转换为通用MP4? 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾遇到过这样的情况&#xff1…...

5分钟搞定Android Studio中文界面:终极免费汉化完整指南

5分钟搞定Android Studio中文界面:终极免费汉化完整指南 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为Androi…...

事故数据四年连降,为何山西煤矿的命还是悬在一根绳上?

说实话,写到山西煤矿这四个字,我心里就咯噔一下。2026年5月22日19时29分,山西长治市沁源县山西通洲集团留神峪煤业有限公司井下发生瓦斯爆炸事故,截至到写稿,事故已造成90人遇难。看的心里堵得慌。我特意去翻了翻这些年…...

后端开发者体验 AI 前端:用 TinyVue 做一个智能业务表单 Demo

摘要 作为 Java 后端开发者,我平时更多关注接口、SQL 和业务逻辑,但后台系统里也绕不开表单、列表和报表页面。本文结合 OpenTiny NEXT 学习体验,用 TinyVue 做一个智能业务表单 Demo,聊聊 AI 前端对后端开发者到底有没有实际帮助…...

BGP选路原则--本地优先级(LocPrf)

如果BGP收到相同的路由,首选值PrefVal如果也相同的话,那么就会继续比较下一条原则:本地优先级Local_Pref 一、拓扑图 二、配置BGP路由协议: R1 bgp 100 peer 12.1.1.2 as-number 200 peer 13.1.1.3 as-number 200 R2 bgp 200 peer 4.4.4.4 as-number 200 peer 4.4.4…...

亿万富翁不再相信比特币

亿万富翁首次公开称不再相信比特币的「数字黄金」叙事。对比特币而言,或许是一个重要转折点。5月22日,亿万富翁投资者马克库班表示, 在对比特币作为抵御法币疲软和地缘政治不稳定对冲工具的作用失去信心后, 他已经卖掉大部分比特币持仓。净资产约为100亿…...