news 2026/5/12 15:23:04

飞凌嵌入式ElfBoard-软连接(符号链接)与硬连接

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
飞凌嵌入式ElfBoard-软连接(符号链接)与硬连接

Linux系统中,有软连接和硬连接两种不同的文件链接方式。

硬连接是对文件的另一个目录项,所有硬连接都指向相同的inode,就好比一块存储数据的内存有着多个名字,每增加一个硬连接,连接数就会加一。当连接数为0时,相对应的内存就会被彻底删除。

软连接就好比Windows系统中的快捷方式,最终指向的是源文件,一旦源文件删除,则软连接失效,而且软连接和源文件有这个不同的inode号。

下面介绍ln命令基本用法,方便后面做演示。

硬连接: ln 源文件 连接文件

软连接: ln -s 源文件 连接文件

大家自行找位置创建测试文件,我这里使用的是/home/elf/work/test,分别创建hard.txt、soft.txt、source.txt文件,最后使用stat命令查看最终结果。

$ stat ./*

File: ./hard.txt

Size: 0 Blocks: 0 IO Block: 4096 regular empty file

Device: 803h/2051d Inode: 5279891 Links: 2

Access: (0644/-rw-r--r--) Uid: ( 1000/ elf) Gid: ( 1000/ forlinx)

Access: 2024-11-06 21:31:37.948957601 +0800

Modify: 2024-11-06 21:31:37.948957601 +0800

Change: 2024-11-06 21:34:43.967331843 +0800

Birth: 2024-11-06 21:31:37.948957601 +0800

File: ./soft.txt -> source.txt

Size: 10 Blocks: 0 IO Block: 4096 symbolic link

Device: 803h/2051d Inode: 5279903 Links: 1

Access: (0777/lrwxrwxrwx) Uid: ( 1000/ elf) Gid: ( 1000/ forlinx)

Access: 2024-11-06 21:34:45.739296928 +0800

Modify: 2024-11-06 21:32:30.477947367 +0800

Change: 2024-11-06 21:32:30.477947367 +0800

Birth: 2024-11-06 21:32:30.477947367 +0800

File: ./source.txt

Size: 0 Blocks: 0 IO Block: 4096 regular empty file

Device: 803h/2051d Inode: 5279891 Links: 2

Access: (0644/-rw-r--r--) Uid: ( 1000/ elf) Gid: ( 1000/ forlinx)

Access: 2024-11-06 21:31:37.948957601 +0800

Modify: 2024-11-06 21:31:37.948957601 +0800

Change: 2024-11-06 21:34:43.967331843 +0800

Birth: 2024-11-06 21:31:37.948957601 +0800

上图中source.txt是源文件,hard.txt是硬连接文件,soft.txt是软连接文件。其中硬连接和源文件的inode号和连接数(Links)是一样的,这里因存在源文件和硬连接文件所以links数为2。软连接的inode数和link数与源文件都不一致,正好验证了前面的理论。

下面来说说硬连接和软连接的特点:

软连接:可以跨文件系统创建,并可以链接到目录。但删除源文件会导致符号链接失效(变成悬链接)。

硬连接:不能跨越文件系统创建,也不能链接到目录。但删除一个硬连接不影响其他硬连接或者源文件数据,直到最后一个硬连接被删除时,文件数据才会被清除。

创建软连接可以使用symlink()函数,创建硬连接文件可以使用link() 函数,下面就来介绍一下这两个函数。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 10:02:46

LightGBM:机器学习界的“轻功高手”

图解说明: 左图 (XGBoost):像盖楼一样,每一层都要铺满,不管需不需要。右图 (LightGBM):像挖井一样,盯着误差最大的那个点(红色节点)一直往下挖,效率更高。 继 XGBoost 之…

作者头像 李华
网站建设 2026/5/10 6:15:28

《你真的了解C++吗》No.014:RTTI 的代价——typeid 与 dynamic_cast 的真相

《你真的了解C吗》No.014:RTTI 的代价——typeid 与 dynamic_cast 的真相 导言:运行时的“身份证明” C 是一门以静态类型著称的语言,这意味着大部分类型检查在编译期就尘埃落定了。然而,为了支持多态,C 必须在运行时保…

作者头像 李华
网站建设 2026/5/1 23:18:20

Windows平台Python多版本管理:pyenv-win实战指南

Windows平台Python多版本管理:pyenv-win实战指南 【免费下载链接】pyenv-win pyenv for Windows. pyenv is a simple python version management tool. It lets you easily switch between multiple versions of Python. Its simple, unobtrusive, and follows the …

作者头像 李华
网站建设 2026/5/12 6:20:02

PaddlePaddle平台如何实现模型版本的全生命周期管理?

PaddlePaddle平台如何实现模型版本的全生命周期管理? 在AI系统从实验室走向生产线的过程中,一个常被低估却至关重要的挑战浮出水面:如何让训练好的模型稳定、可复现、可持续地演进? 我们都有过这样的经历——本地调试完美的模型&a…

作者头像 李华
网站建设 2026/5/3 18:32:37

msvcr100d.dll报错?别急着下载!工程师教你正确解法

在解决Windows系统或软件运行时遇到的“找不到msvcr100d.dll”错误时,许多人会直接搜索下载这个文件。然而,这背后涉及软件依赖、系统安全和合法授权的复杂问题,盲目下载dll文件可能无法解决问题,反而会引入新的风险。本文将从一个…

作者头像 李华
网站建设 2026/5/1 8:58:44

PingFangSC字体:解锁专业级网页排版的5大核心技巧

PingFangSC字体:解锁专业级网页排版的5大核心技巧 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件,包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 在当今数字化时代,网页字体质量…

作者头像 李华