0

0

Linux如何创建软链接_Linux符号链接与硬链接使用区别【教程】

尼克

尼克

发布时间:2026-01-16 13:20:03

|

226人浏览过

|

来源于php中文网

原创

软链接是独立文件,存储目标路径,可跨文件系统,目标删除后失效;硬链接共享inode,不可跨文件系统或链接目录,原文件删除仍可用。

linux如何创建软链接_linux符号链接与硬链接使用区别【教程】

如果您需要在Linux系统中为文件或目录创建快捷方式,或者希望理解符号链接与硬链接在底层机制上的差异,则需掌握软链接(即符号链接)的创建方法及两者的核心区别。以下是具体操作步骤与对比说明:

一、创建软链接的方法

软链接是一个独立的文件,其内容仅保存目标文件的路径字符串,访问时由内核自动重定向到该路径指向的实际文件。它可跨文件系统,且目标文件被删除后链接将失效。

1、打开终端,切换至希望存放软链接的目录。

2、执行命令:ln -s /path/to/target /path/to/symlink,其中 /path/to/target 是原始文件或目录的绝对路径,/path/to/symlink 是新创建的软链接名称。

3、验证是否成功:运行 ls -l /path/to/symlink,输出中应显示箭头 -> 及其后所指向的目标路径。

二、创建硬链接的方法

硬链接是目标文件的另一个目录项,与原文件共享同一inode编号和数据块,因此不能跨文件系统,也不可对目录创建。删除原文件不影响硬链接的可用性。

1、确保目标文件位于同一文件系统内,且非目录。

2、执行命令:ln /path/to/original /path/to/hardlink,省略 -s 参数即为创建硬链接。

3、验证是否成功:运行 ls -i /path/to/original /path/to/hardlink,两个文件的inode编号必须完全一致。

三、通过stat命令查看链接类型与属性

stat命令可显示文件的详细元数据,包括inode号、链接计数、文件类型等,是区分软链接与硬链接最直接的方式。

1、对软链接执行:stat /path/to/symlink,输出中 File: 行会显示链接名称,而 Size: 显示的是路径字符串长度;Links: 值为1,且 Type: 显示为 symbolic link。

HeyGen
HeyGen

HeyGen是一个AI虚拟数字人生成平台,可以根据用户提供的内容,快速生成高质量的虚拟发言人视频,支持数字化身、文本转视频和视频翻译。

下载

2、对硬链接执行:stat /path/to/hardlink,输出中 Inode: 与原文件相同,Links: 值大于等于2,Type: 显示为 regular file。

四、使用readlink命令解析软链接路径

readlink命令专门用于显示符号链接所指向的路径,支持递归解析多层嵌套软链接,是排查路径错误的重要工具

1、查看基础软链接目标:readlink /path/to/symlink,将输出目标路径字符串。

2、若存在多级软链接,添加 -f 参数进行完全解析:readlink -f /path/to/symlink,返回最终指向的绝对路径。

3、若目标不存在,readlink 默认不报错;如需检测失效链接,可结合 -e 参数,仅当目标存在时才输出路径。

五、识别失效软链接的方法

当软链接指向的原始文件被移动、重命名或删除后,该链接即变为“悬空链接”,继续访问将触发“No such file or directory”错误。

1、使用 ls -l 查看链接列表,失效软链接的文件名将以 红色闪烁字体 显示(终端配色启用时),且路径部分呈 红色

2、执行 find /search/path -type l ! -exec test -e {} \; -print,可批量扫描指定路径下所有失效软链接。

3、检查单个链接状态:运行 [ -L "/path/to/symlink" ] && [ ! -e "/path/to/symlink" ] && echo "broken",输出 broken 即表示已失效。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

184

2023.09.27

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

256

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

208

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1465

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

619

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

550

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

545

2024.04.29

go语言字符串相关教程
go语言字符串相关教程

本专题整合了go语言字符串相关教程,阅读专题下面的文章了解更多详细内容。

161

2025.07.29

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

8

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.2万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号