「Linux文件及目录管理」硬链接与软连接

知识点解析

在Linux系统中,硬链接(Hard Link)和软链接(Symbolic Link,又称软连接)是两种不同的文件链接方式:

1.硬链接(Hard Link)

  • 本质:硬链接是文件的一个别名,与原文件共享相同的inode和磁盘数据块。
  • 特点
    • 数据共享:硬链接与原文件指向同一数据块,修改任一文件会影响所有硬链接。
    • 生命周期:删除原文件后,只要存在至少一个硬链接,数据块不会被释放。
    • 不能跨文件系统创建(因inode是文件系统唯一的)。
    • 不能链接到目录(避免循环引用,如a -> bb -> a)。
  • 创建命令ln 源文件 硬链接名
  • 示例ln file.txt hardlink_to_file

2.软链接(Symbolic Link)

  • 本质:软连接是一个独立的文件,存储原文件的路径(类似Windows快捷方式)。
  • 特点
    • 路径依赖:软连接通过路径访问原文件,路径可以是相对或绝对路径。 需要额外的存储空间来存储链接路径
    • 生命周期:删除原文件后,软连接失效(显示为“断链”)。
    • 可以跨文件系统创建
    • 可以链接到目录
  • 创建命令ln -s 源文件 软链接名
  • 示例ln -s file.txt symlink_to_file

3.主要区别对比

特性硬链接软链接
inode与源文件相同独立的inode
跨文件系统不支持支持
链接目录不能可以
原始文件删除不影响(直到最后一个链接被删除)链接失效
存储空间不额外占用需要存储路径信息
文件类型普通文件特殊文件(l类型)

4.查看方法

  • 使用ls -li查看(硬链接显示相同inode,软链接显示->指向)
  • 硬链接计数在ls -l结果的第二列显示
  • 软链接会明确显示链接目标和文件类型(首字母为l)

5.应用场景
硬链接适合:

  • 需要多个路径访问同一文件内容
  • 防止重要文件被误删
  • 节省存储空间

软链接适合:

  • 需要跨文件系统的引用
  • 链接到目录
  • 创建快捷方式
  • 动态切换不同版本的文件

示例

touch original.txt  # 创建空文件
ln original.txt hardlink.txt  # 创建硬链接
ln -s original.txt symlink.txt # 创建软链接
ls -li  # 查看结果
# 33616716 -rw-r--r--  2 root root    0 6月  19 16:59 hardlink.txt
# 33616716 -rw-r--r--  2 root root    0 6月  19 16:59 original.txt
# 33616717 lrwxrwxrwx  1 root root   12 6月  19 17:00 symlink.txt -> original.txt
案例与命令解析

案例:硬链接的创建与验证

# 创建测试文件
echo "Hello, Hard Link" > file1.txt
# 创建硬链接
ln file1.txt file1_hardlink# 验证inode和内容
ls -li file1.txt file1_hardlink  # 输出inode相同
# 577706 -rw-r--r-- 2 root root 17 6月  14 08:00 file1_hardlink
# 577706 -rw-r--r-- 2 root root 17 6月  14 08:00 file1.txt
cat file1.txt                   # 输出内容
# Hello, Hard Link
cat file1_hardlink              

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

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

相关文章

分清display三个属性

display 三兄弟行为对比表格 属性值是否换行能否设置宽高默认宽度常用标签典型用途block是可以撑满父容器<div>, <p>, <section>页面结构、布局容器inline否不行随内容大小<span>, <a>文字中嵌套、小图标inline-block否可以随内容大小<img&g…

《棒球青训》打造几个国家级运动基地·棒球1号位

Youth Baseball/Softball Base Development Plan | 青少年棒垒球基地建设方案 Core Strategies | 核心战略 Regional Hub Construction | 区域枢纽建设 优先在 长三角/珠三角/成渝经济圈 建设 3大示范性基地 每个基地包含&#xff1a; ▶️ 国际标准青少年赛场&#xff08;…

JavaScript Symbol 属性详解

一、Symbol 的本质与基础 1. Symbol 是什么 JavaScript 的第七种原始数据类型&#xff08;ES6 引入&#xff09;创建唯一的、不可变的标识符主要用途&#xff1a;作为对象的属性键&#xff08;Symbol 属性&#xff09; // 创建 Symbol const id Symbol(id); // id 是描述符…

使用 INFINI Console 全面管理 Elasticsearch 9.X

1、引言 在搜索和分析领域&#xff0c;保持与最新版本的 Elasticsearch 同步对于利用新功能、提升性能和增强安全性至关重要。 Elasticsearch 9.X 作为 Elastic Stack 的最新版本&#xff0c;引入了多项改进&#xff0c;例如更高效的二进制量化和对 ColPali、ColBERT 等模型的支…

开疆智能ModbusTCP转EtherCAT网关连接IVO编码器配置案例

本案例是使用ModbusPOLL软件通过开疆智能ModbusTCP转EtherCAT网关连接编码器的配置案例。具体操作步骤如下 配置过程 打开网关配置软件“EtherCAT Manager”并新建项目选择TCP2ECAT 设置网关的ModbusTCP一侧的IP地址&#xff0c;要与主站软件的组态配置保持一致。 添加松下伺服…

FPGA基础 -- Verilog 的属性(Attributes)

Verilog 的属性&#xff08;Attributes&#xff09; 的系统化培训内容&#xff0c;适用于希望深入理解属性如何在综合、仿真和工具指示中使用的专业工程师。内容将涵盖&#xff1a;属性的定义、语法、使用场景、典型示例、工具兼容性与注意事项。 一、什么是 Verilog 的属性&am…

AI的认知象限:浅谈一下我们与AI的边界

最近&#xff0c;无论是工作上的数据分析&#xff0c;还是生活中的菜谱教程&#xff0c;当我遇到一个问题,我的第一反应往往不是去翻书或者问朋友&#xff0c;而是习惯性地打开AI。它似乎比我更了解这个世界&#xff0c;甚至比我更了解我自己。但事实真的如此吗&#xff1f;AI的…

JVM监控的挑战:Applications Manager如何提供帮助

Java 应用变慢、意外崩溃、内存问题难以理解——这些迹象可能意味着你的 JVM 正在默默挣扎。 对 Java 应用程序而言&#xff0c;JVM&#xff08;Java 虚拟机&#xff09;监控至关重要&#xff0c;它能确保应用的高可用性和最佳性能。通过监控&#xff0c;你可以深入了解 JVM 如…

视觉推理中评估视觉语言模型

大家读完觉得有帮助记得及时关注和点赞&#xff01;&#xff01;&#xff01; 抽象 基于基于语言的推理模型的最新进展&#xff0c;我们探索了集成视觉和文本的多模态推理。现有的多模态基准测试主要测试视觉提取与基于文本的推理相结合&#xff0c;缺乏真正的视觉推理和视觉与…

解决uni-app发布微信小程序主包大小限制为<2M的问题

一 问题说明 我想用uniapp开发多端应用&#xff0c;引入了uview组件库来美化样式&#xff0c;可发布为微信小程序却提示我代码质量不过关&#xff0c;主包代码量太大了&#xff1a; 二 问题分析 2.1 原生微信小程序开发代码质量限制&#xff1a; 1.主包代码大小不得大于2M&…

使用 OpenCV 和传统机器学习实现工业开关状态识别

在工业自动化领域&#xff0c;开关状态的检测对于监控设备运行状态至关重要。通过图像识别技术&#xff0c;我们可以快速、准确地判断开关是否处于开闸、合闸、分闸或中间状态。本文将介绍如何结合 OpenCV 和传统机器学习方法实现这一目标。 一、背景与挑战 在工业环境中&…

WebFuture:模板如何加上简繁切换?

问题描述&#xff1a;模板如何加上简繁切换&#xff1f; 解决方法&#xff1a;在模板找到合适位置调用系统自带的stot.js文件&#xff0c;添加以下简繁调用代码&#xff0c;一般在网站顶部标签里面添加。 <script type"text/javascript" src"~/content/(thi…

手阳明大肠经之上廉穴

个人主页&#xff1a;云纳星辰怀自在 座右铭&#xff1a;“所谓坚持&#xff0c;就是觉得还有希望&#xff01;” 上廉又名&#xff1a; 1.手上廉。 2.手之上廉。 所属经络&#xff1a;手阳明大肠经 定位 在前臂背面桡侧&#xff0c;当阳溪穴与曲池穴连线上&#xff0c;肘横纹下…

tkinter 的 place() 布局管理器学习指南

place() 是 tkinter 中三种布局管理器之一&#xff0c;它允许你通过精确的坐标和尺寸来定位组件。下面我将详细介绍 place() 的使用方法。 tk.Label(root, text"坐标x50,y30").place(x50, y30) 这行代码创建了一个标签&#xff0c;并将其放置在窗口的 (50, 30) 坐标…

物体变化下的迈克尔逊干涉:条纹密度、载波解调与双曝光去畸变

▒▒本文目录▒▒ 一、摘要二、连续物体——四步相移算法三、连续物体-空间载波法-数值拟合法去畸变四、连续物体-空间载波法-双曝光去畸变五、混叠干涉条纹六、推荐阅读七、实验指导与matlab代码获取 一、摘要 迈克尔逊干涉仪光路原理如下图所示。其中&#xff0c;平面反射镜…

湖北理元理律师事务所:债务优化中的法律风险控制体系

实务痛点&#xff1a;75%的债务恶化源于不当协商&#xff08;来源&#xff1a;2024《中国个人债务管理白皮书》&#xff09; 一、协商谈判的“三要三不要” 要 ✅ 以书面《债务重组建议函》启动沟通 ✅ 引用具体法律条文&#xff08;如网贷利率上限依据法释〔2020〕27号&…

【PmHub面试篇】PmHub 缓存与数据库一致性的面试专题分析

在分布式系统开发中&#xff0c;缓存与数据库的一致性问题是后端开发面试的核心考点之一。本文结合 PmHub 项目实践&#xff0c;整理高频面试题及深度解答&#xff0c;帮助开发者系统掌握缓存一致性解决方案的设计与实现。若想对相关内容有更透彻的理解&#xff0c;强烈推荐参考…

游戏行业对于服务器类型该怎样进行选择

大型的网络游戏和多人在线游戏对于服务器类型的选择还是有着一定要求的&#xff0c;在游戏运行的过程中一般需要处理大量的数据&#xff0c;如玩家的实时操作和游戏场景渲染等多种内容&#xff0c;较为热门的在线游戏&#xff0c;在线玩家数量会非常庞大&#xff0c;这需要服务…

Android Studio安装遇到的问题

一、现况 1.1 安装时间 2025-06 1.2由于本人操作系统是win7的&#xff0c;android studio最新版支持的最低要求官方是win11,16G&#xff0c;所以我下载的是android studio的版本&#xff0c;版本信息android-studio-2024.1.2.12-windows jdk用的是1.8&#xff0c; gradle用的…

[论文阅读] 人工智能 + 软件工程 | 用大语言模型架起软件需求形式化的桥梁

用大语言模型架起软件需求形式化的桥梁 论文信息 misc{beg2025short,title{A Short Survey on Formalising Software Requirements with Large Language Models}, author{Arshad Beg and Diarmuid ODonoghue and Rosemary Monahan},year{2025},eprint{2506.11874},archivePre…