关于Linux软链你必须知道的实用知识点(非常详细)零基础入门到精通,收藏这一篇就够了

news2024/11/15 15:49:05

背景

Linux中的软链,是非常强大的工具,如果只是一知半解,在解决问题时一定会让你栽跟头或者浪费大量的时间。非常有必要提前掌握Linux软链的几个实用的知识点。

分析

软链是什么?

在Linux中,软链接(symbolic link)是一种特殊类型的文件,它包含另一个文件或目录的路径。软链接充当了指向目标文件或目录的符号,而不是实际的数据。创建软链接可以让用户在不移动或复制实际文件的情况下引用其他文件或目录,从而提供了一种灵活的方式来管理文件系统。

简单理解,软链类似于Windows的快捷方式。但是Linux中的软链比Windows的快捷方式好用多了。

软链有哪些常见用途

  1. 管理文件版本:软链接可用于管理文件的不同版本。通过创建指向不同版本的软链接,用户可以轻松地切换或管理文件的不同变体。

  2. 创建快捷方式:软链接可以用作创建文件或目录的快捷方式。用户可以在不同位置创建软链接,以便更方便地访问需要频繁使用的文件或目录。

  3. 跨目录引用:软链接可以用于跨越不同目录结构引用文件或目录。这对于在多个位置使用相同文件或目录而不复制实际数据非常有用。

  4. 系统管理:在系统管理中,软链接可以用于将特定配置文件放置在一个位置,并将其链接到系统的不同部分,从而实现集中管理和共享配置文件。

  5. 软件安装与升级:在软件安装或升级过程中,软链接常常用于链接到新版本的软件,以便在旧版本和新版本之间进行无缝切换。

  6. 运维管理:当一个目录或文件占用大量磁盘的时候,我们会将一个目录或文件移到一个大磁盘里。为了不修改原有程序使用原来的绝对路径,我们只需要把目录或文件移走后,在原先位置创建一个指向新路径的软链即可。

了解了软链的概念和使用场景后,我们对软链就有了一个整体的认识。

下面要具体分享一下关于软链的一些非常实用的知识点。

1.创建软链

ln -s {目标文件或目录} 软链文件名

-s 此参数用于创建软链。如果不加此参数,那创建的是硬链。

硬链文件等同于文件本身,操作硬链文件就是操作原文件,删除硬链文件等同于删除了原文件, 所以要小心操作。而软链则是一个新的符号文件,指向了原文件,删除软链文件不会删除原文件,修改软链文件等同于修改了原文件。

所以软链和硬链的差别,需要注意。

如上图所示,demo为原文件,dhardlink为硬链文件,指向demo,而dlink文件为软链文件,也指向demo。

硬链文件和源文件除了名字不一样外,其他完全一样。而软链则不一样。最左边的一列中,软链开头的是l,而 原文件是-(目录则是d)。

软链文件在文件的权限、引用数1、文件大小4以及文件名展示方式都不一样,很好辨别。

再使用inode文件节点值来看:

ls -li

最左边展示的是文件的inode值。这个值是文件的身份证号,是唯一的标识。

可以看到,demo和dhardlink是一样的inode值,而dlink是不一样的。这也能说明软链是一个新文件。

如果你想使用cat等命令查看软链文件的内容,是什么也看不到的。

2.覆盖软链

如果软链已经存在,直接创建文件会报错。

我们已经了解到,软链就是一个独立的文件。如果文件已经存在,直接创建肯定是会提示已存在的。

而软链作为一个特殊的文件,只是起到一个指引的作用。所以如果软链已经存在,我们并不想麻烦的判断,直接覆盖即可。覆盖使用f参数即可。

ln -sf {目标文件} {软链文件}

3.必要时使用硬链

硬链是文件系统中的实际物理链接,它们指向相同的inode,因此无论哪一个被修改,另一个也会随之改变。当你需要创建一个链接,使得文件在文件系统中的不同位置都可以通过不同的路径访问时,可以使用硬链。硬链不能跨越不同的文件系统,因为inode只在同一文件系统内部唯一。

而软链恰恰相反,使用软链时一般是为了保持不调整路径,维护之前的路径场景下使用。比如原始文件或目录被移动后,为了不修改其他代码而继续正常运行,可以使用软链来解决。软链是一个特殊的文件,其中包含着指向另一个文件的路径。软链可以跨越不同的文件系统,因为它们只是简单地存储了目标文件的路径。

4.判断是软链还是文件

有时候要基于文件是软链还是常规的文件还是目录,需要进行区分,以进行不同的处理。

人工判断,使用ls -l命令,观察最左边的标志即可,-为常规文件,l为软链,d为目录。硬链文件就是原文件。

而如果要用shell脚本判断,就需要进行测试了。

在条件判断时,-f判断常规文件,-L或-h判断软链文件,-d判断目录文件。

下面是示例:

if [ -f “file_path” ]; then

echo "This is a regular file."

fi

if [ -h “file_path” ]; then

echo "This is a symbolic link."

fi

if [ -d “directory_path” ]; then

echo "This is a directory."

fi

5.确定软链指向的目标文件

要判断软链指向的实际目录,我们在前面说了,用cat等命令直接读取文件内容是空的。我们要使用readlink命令。readlink命令会输出软链接指向的实际目录或文件。

readlink {软链文件}

如果软链文件本身不存在,readlink命令会返回空。如果存在,则返回目标文件的路径,不管目标文件本身是否存在。

如果软链目录文件不存在,使用ll或ls -l查看时会有特殊的提示,比如闪烁。当目标文件建立后就不再闪烁了。

总结

软链的使用,看似简单,实则有很多需要了解的地方。如果掌握了,在今后的使用上会如鱼得水。否则在遇到一些问题时就不知道如何简单优雅的解决问题了,甚至都不知道怎么解决。


在喧嚣的世界里,能沉下心看完,非常难能可贵,谢谢您的品读。
喜欢就点赞关注吧,可以第一时间收到最新分享哦,让我们一起成长为大咖吧。

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

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

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

相关文章

Echarts 实现线条绘制

文章目录 需求分析 需求 用 Echarts 实现如下效果 分析

PS Adobe Photoshop 2024 for Mac[破]图像处理软件[解]PS 2024安装教程[版]

Adobe Photoshop 2024 for Mac[破]图像处理软件[解]PS 2024安装教程[版] 原文地址:https://blog.csdn.net/weixin_48311847/article/details/139248839

mysql去除重复数据

需求描述 doc表有很多重复的title,想去除掉重复的记录 表结构 CREATE TABLE doc (id INT PRIMARY KEY,title VARCHAR(255),content TEXT );去重SQL -- 创建临时表 CREATE TEMPORARY TABLE temp_doc AS SELECT * FROM doc WHERE 10;-- 插入唯一的记录(每个title最…

【ARM+Codesys案例】基于全志T3+Codesys软PLC的3C点胶边缘控制解决方案:整合了运动控制、视觉、激光测高等技术

视觉精密点胶控制方案 针对直交型机构的平面点涂胶应用,基于CODESYS软件平台开发的一站式PC型控制器解决方案,包含运动控制器硬件和点胶应用软件。方案整合了运动控制、视觉、激光测高等技术,高效精密的控制胶水点涂于产品表面或内部&#x…

使用ETL读取文件数据并快速写入mysql中

本文介绍使用国产的ETL工具ETLCloud平台来读取文件文件中的数据到mysql数据库中,首先需要安装ETLCloud的社区版本,然后在示例应用中创建一个文件读取流程如下: 点击“流程设计”后打开流程图如下 打开文本文件读取节点配置要读取的文件目录和…

【数据结构(邓俊辉)学习笔记】二叉树04——Huffman树

文章目录 0. 概述1. 无前缀冲突编码2. 编码成本3. 带权编码成本4. 编码算法5. 算法实现流程6. 时间复杂度与改进方案 0. 概述 学习Huffman树。 1. 无前缀冲突编码 在加载到信道上之前,信息被转换为二进制形式的过程称作编码(encoding)&…

免费插件集-illustrator插件-Ai插件-文本对象分行

文章目录 1.介绍2.安装3.通过窗口>扩展>知了插件4.功能解释5.总结 1.介绍 本文介绍一款免费插件,加强illustrator使用人员工作效率,进行文本对象分行。首先从下载网址下载这款插件 https://download.csdn.net/download/m0_67316550/87890501&…

python数据处理中的类型检查与转换技巧

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、类型检查的重要性 二、类型检查与转换技巧 1. 识别数据类型不一致 2. 使用astype()方…

CSS学习笔记:rem实现移动端适配的原理——媒体查询

移动端适配 移动端即手机端,也称M端 移动端适配:同一套移动端页面在不同屏幕尺寸的手机上可以实现宽度和高度的自适应,也就是页面中元素的宽度和高度可以根据屏幕尺寸的变化等比缩放 rem配合媒体查询可实现移动端适配 rem单位 媒体查询 …

校企携手|泰迪智能科技与高新启动「大数据应用技术」深度合作项目

5月22日,广东泰迪智能科技股份有限公司携手广东省高新技术高级技工学校举行“泰迪高新技术学校大数据双创工作室”暨广东省“产教评”技能生态链学生学徒公共实训基地签约揭牌仪式,标志着双方合作共建大数据应用技术专业、产教生态链实训基地及泰迪高新大…

【机器学习】Chameleon多模态模型探究

Chameleon:引领多模态模型的新时代 一、多模态模型的时代背景二、Chameleon模型的介绍三、Chameleon模型的技术特点四、Chameleon模型的性能评估五、Chameleon模型的代码实例 随着人工智能技术的深入发展,我们逐渐认识到单一模态的模型在处理复杂问题时存…

MySQL--二进制日志

目录 一、作用 二、binlog配置 1.查看当前配置 2.修改配置文件​ 3.binlog配置参数解释 三、binlog记录内容说明 1.记录内容 2.DDL、DCL记录格式 3.DML记录格式 4.记录内容查看 四、bin_log_format 记录模式 1.行模式 Row 2.语句模式 Statement 3.混合模式 五、…

亚信安慧AntDB数据库与华为数据存储完成兼容性互认证

迎接数智时代,供给核心科技。日前,湖南亚信安慧科技有限公司(简称:亚信安慧)与华为技术有限公司(简称:华为),完成了AntDB数据库产品与OceanProtect备份一体机及Oceanstor…

Autoware 技术代码解读(三)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务,并且需要GPU资源,可以考虑使用Compshare的GPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时,并附带200G…

物联网应用系统与网关

一. 传感器底板相关设计 1. 传感器设计 立创EDA传感器设计举例。 2. 传感器实物图 3. 传感器测试举例 测试激光测距传感器 二. 网关相关设计 1. LORA,NBIOT等设计 2. LORA,NBIOT等实物图 3. ZigBee测试 ZigBee测试 4. NBIoT测试 NBIoT自制模块的测试…

LAMP集群分布式实验报告

前景: 1.技术成熟度和稳定性: LAMP架构(Linux、Apache、MySQL、PHP)自1998年提出以来,经过长时间的发展和完善,已经成为非常成熟和稳定的Web开发平台。其中,Linux操作系统因其高度的灵活性和稳…

​LabVIEW超声波检测

LabVIEW超声波检测 在现代工业生产和科学研究中,超声检测技术因其无损性、高效率和可靠性而被广泛应用于材料和结构的缺陷检测。然而,传统的超声检测仪器往往依赖于操作者的经验和技能,其检测过程不够智能化,且检测结果的解读具有…

【产品运营】对接上游电商平台需要了解什么?

围绕卖家和平台的运营模式等维度,ISV对接平台可以划分为业务域、开放能力域和产品能力域。 ISV对接平台的最终目地是打通多方数据传输,解决卖家日常运营中的场景起到类似于业务中台的作用。因此我们可以围绕卖家和平台的运营模式等维度划分为&#xff1a…

电脑下载了caj却打不开文献?使用CAJ阅读器,支持caj转word

如果电脑下载了CAJ文件却打不开文献,这通常是因为没有安装合适的阅读器。CAJ文件是中国知网的一种专用全文阅读格式,需要使用专门的CAJ阅读器(CAJViewer)来打开和阅读。 首先:使用CAJ阅读器 请确保你已经正确安装了CA…

迈的普拉姆利普绘图:深入解析与实战应用

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:matplotlib绘图的基本原理 代码案例 二、深入了解:matplo…