【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十三章 Linux连接档

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT、4G模块、CAN、RS485等接口一应俱全。H264、VP8视频硬编码,H.264、H.265、VP8、VP9视频硬解码,并提供相关历程,支持8路PDM接口、5路SAI接口、2路Speaker。系统支持Android9.0(支持获取root限)Linux4.14.78+Qt5.10.1、Yocto、Ubuntu20、Debian9系统。适用于智能充电桩,物联网,工业控制,医疗,智能交通等,可用于任何通用工业和物联网应用、

【公众号】迅为电子

【粉丝群】258811263(加群获取驱动文档+例程)


第十三章 Linux连接档

本章内容对应视频讲解链接(在线观看):

Linux连接档概念  https://www.bilibili.com/video/BV1M7411m7wT?p=13

Linux 下的连接档有两个种类。一个是类似于 windows 电脑的快捷方式,我们称为软链接,软链接也可以叫做符号链接。另一种是通过文件系统的 inode 连接来产生的,类似于 windows 电脑的复制,但是不产生新的文件,我们称为硬链接。硬链接也可以称作为实体链接。

13.1 索引节点

inode 也叫作索引节点,内核为每一个新创建的文件都会分配一个索引节点,就是 inode 。inode 是用来存放文件信息的,每个文件都会占用一个 inode ,并且这个 inode 号是唯一的,可以把inode 简单的理解为一个指针,它永远指向本文本的具体存储位置,文件的属性保存在 inode 里,系统是通过 inode 而不是文件名来定义每一个文件的。文件的内容都是 inode 来指定的而不是文件名,当系统要访问文件时,inode就会被复制到内存,从而实现文件的快速访问,使用 ls -i 命令则可以看到 inode号。

-i 参数为打印文件的 inode 号

我们也可以使用 ll -i ,是一样的。

13.2 硬链接

硬连接是一个新的链接到某个 inode号码的记录。这个链接指向 inode ,系统并不给他从新分配 inode 。也就是说会有多个文件对应同一个 inode ,如果两个文件的inode一样,那么这两个文件就是完全一样的。可以用 ln命令来建立硬链接。

格式: ln 源文件 目标文件

常用参数 -f ,就是说强制创建,无论目标文件是否存在都要创建链接。

举例:我们使用命令touch test1.c创建文件 test1.c,然后ln test1.c test2.c创建一个硬链接,最后用 ls -li 命令来查看下,如下图所示。

在例子中我们可以发现 test1.c 和 test2.c 他们的 inode 号码都是 17301827 。因为 inode 号一样,所有这个两个文件的权限和属性也是一模一样的,也是 test1.c和test2.c 是两个完全一样的文件。如下图所示。

连接数也由1 变成了2 ,这个代表的是有多少个档名链接到了这个 inode 号。如下图所示。

我们再创建一个硬连接。使用 ln test1.c test3.c -f 命令后,则会发现我们这个连接数从2变成了3,如下图所示。

13.3 硬链接的优缺点

优点:

第一是方便,虽然类似于windows的复制,但是通常并不占用实际空间。不管我们是修改 test1.c 或者是修改 test2.c 还是 test3.c ,只要修改一个,我们的文件就会被同时修改,因为他们的 inode 号都是相同的。

举例:

修改test3.c 的内容为下图所示:

test1.c和test2.c的内容也被修改成了nihao,如下图所示。

第二是安全,防止误删除。我们删除 test1.c 或者是 test2.c 或者 test3.c 任意一个,我们还是可以通过剩下的连接来访问文件,除非都删掉。我们可以利用这个特点来做文件的备份。

我们删掉 test1.c 使用 rm test1.c。但是 test2.c或者 test3.c还是可以访问到 “nihao”这个内容。输入以下命令:

cat test2.c  

cat test3.c

缺点:

只能在同一个文件系统才可以创建硬连接(因为不同的文件系统管理方式不同),甚至有的文件系统没有索引号,它不是索引文件系统。哪怕他有索引号,两个文件系统的索引号含义不一定是相同的,即使它的索引号相同,我们连接几个文件,他有相同的 inode ,但是不同的文件系统中也有可能使用该 inode 的其他文件,这样就会发生冲突,所以说我们只能在同一个文件系统中才能创建硬连接。

第二,目录之间不能创建硬连接(太复杂,现在还不支持)。如果说硬连接到我们的目录,那么我们连接的数据需要连同被连接目录下所有数据都要创建硬连接,如果说我们将根目录下的 etc 用硬连接创建一个硬连接的目录,那么不光是我们的文件要被创建,这个文件下面所有的文件名都要创建一个硬连接,这样呢就会给工作环境造成一个很大的工作量,而且非常的复杂,所以现在还不支持。

13.4 软链接

这类似于 windows 上的快捷方式。可以用 ln 命令来建立软链接。

格式: ln -s 源文件 目标文件 (必须加上-s 参数,使用 ln 如果不加任何参数的话,那么就是Hard Link ,而且源文件要用绝对路径)

-s 为创建一个软连接。源文件必须使用绝对路径,不能使用相对路径,如果使用相对路径的话,我们后面想对文件进行一个移动或者复制,那么它绝对会出问题。

我们给 test3.c这个文件创建一个软连接,

ln -s /home/topeet/test/test3.c test1.c

上图中我们可以发现 test1.c 和 test3.c 的 inode 号是不一样的,所以这两个文件是完全独立的,总之软连接就是创立了一个新的文件,当访问这个链接文件的时候,系统就会发现他是一个链接文件,然后读取链接文件找到真正要访问的文件。

因为类似于 windows 上的快捷方式,我们删掉源文件 test3.c ,那么test1.c就不能打开了,如下图。

红色背景代表无效。

软连接虽然没有硬连接安全,但是限制少,所以使用范围还是很广泛的

延伸内容:

ubuntu系统中各个文件的颜色含义:

蓝色

文件夹, ls -l 或 ll 时可以看到权限部分的第1个字母是d

红色

压缩文件

绿色

可执行文件

白色

文本文件

红色闪烁

错误的符号链接

淡蓝色

符号链接

黄色

设备文件

灰色

其他文件

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

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

相关文章

前台线程和后台线程(了解篇)

在多线程编程中,理解线程的不同类型对于编写高效、稳定的程序至关重要。特别地,前台线程(Foreground Threads)与后台线程(Background Threads)在行为上有着根本的区别,这些区别直接影响到程序的…

jdevelope安装

准备 1.jdk1.8(已经安装不做记录) 2.下载jdevelope安装包 3.安装包安装jdevelope开发工具 4.创建或导入项目 下载jdevelope安装包 官网下载地址:https://edelivery.oracle.com 安装包安装jdevelope开发工具 cmd管理员权限运行安装脚本…

【栈和队列OJ题】

栈和队列OJ题 文章目录 栈和队列OJ题1. 用队列实现栈2. 用栈实现队列3. 括号匹配问题4. 循环队列 1. 用队列实现栈 OJ链接:225. 用队列实现栈 - 力扣(LeetCode) 好的,我们一起来看一下题目,题目是这样说的 思路&…

百日筑基第十七天-消息队列入门

百日筑基第十七天-消息队列入门 基础概念 什么是消息队列? MQ:Message Queue 存放消息的队列,消费消息时是按照顺序(队列先进先出)消费的。 参与消息传递的双方称为 生产者 和 消费者 ,生产者负责发送…

2024年06月CCF-GESP编程能力等级认证C++编程三级真题解析

本文收录于专栏《C等级认证CCF-GESP真题解析》,专栏总目录:点这里。订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级&…

天润融通引领客服革新,AI大模型助力品牌服务升级

AI时代,消费零售品牌的客户服务应该怎么做? 如今消费者的关注点已经越来越复杂,一条毛巾,关注点就可以包括: 是否婴幼儿可用,是否儿童成人可用;是否可以直接接触皮肤;是否无甲醛、…

张量笔记(4):张量网络

张量分解通常是将高维张量分解成一系列较低维的张量,表示能力相对较低。而张量网络可以表示复杂的高维数据结构,通过连接多个张量形成网络结构,可以更灵活地表示和处理复杂的数据关系。本节主要介绍HT和TT网络。 2.5.1 HT分解——首先我们引入…

一篇文章解锁vue2

本文章对标vue2笔记内容,欢迎补充 文章目录 Vue介绍Vue2的生命周期生命周期钩子 使用vue/cli(脚手架)创建项目工程组件属性refpropsmixinplugins插件 数组更新检测(会改变原数组)添加/修改响应式布局vue内置指令自定义…

可道云teamOS,用个人标签和公共标签,文件分类更多样

在信息爆炸的时代,我们每天都在与海量的数据和信息打交道。如何在这些纷繁复杂的信息中快速找到我们需要的,成为了摆在我们面前的一大难题。 为大家介绍一下可道云teamOS个人标签和公共标签功能,让信息的整理与搜索变得简单高效。 一、个人…

WAN 和 LAN 分别是什么?

WAN(Wide Area Network,广域网)和LAN(Local Area Network,局域网)是两种不同类型的计算机网络,在覆盖范围、用途和技术实现上有所区别。 覆盖范围: LAN:通常覆盖一个较小…

怎么有效做性能测试?85%的测试不知道!

在质量角度而言,针对一个被测的对象,不仅仅需要考虑它功能层面的完整性,也需要非功能场景下系统的健壮性和稳定性。一个系统最核心的是它的稳定性、完整性、以及弹性的能力。能够在不可预知以及突发的情况下系统能够平稳有效的平滑过去&#…

Transformer的最新的研究论文与成果 - Transformer教程

近年来,Transformer模型在自然语言处理(NLP)领域取得了显著的进展。从其最初由Google提出的论文《Attention is All You Need》,到如今被广泛应用于各大NLP任务,Transformer无疑成为了机器学习中的明星架构。那么&…

微信小程序之使用上拉加载实现图片懒加载

在微信小程序中,有2个事件,相信大家都很熟悉 下拉重新加载 上拉加载更多 事件是这么个事件,至于事件触发后干嘛,那就看代码了 首先要在对应得地方xxxxpage.json打开这个 "onReachBottomDistance": 100至于这个值100还是…

小红薯做私域的9个重要步骤!

做私域如何找到安全、有效且高效的yin流方法!!应该是大家醉醉关心的问题了吧,有很多伙伴们要 么被jin言w规了,要么正在去往被xian流的路上… 1w个s域好友>10w粉丝的变现价值! 今天就一次性给大家总结了:…

pom.xml中重要标签介绍

在 Maven 项目中&#xff0c;pom.xml 文件是项目对象模型&#xff08;POM&#xff09;的配置文件&#xff0c;它定义了项目的依赖关系、插件、构建配置等。以下是 pom.xml 文件中一些重要的标签及其作用&#xff1a; <modelVersion>&#xff1a; 定义 POM 模型的版本。当…

MySQL 面试相关问题

写在前面&#xff1a; 不喜勿喷&#xff0c;暴躁作者又不求你给钱【没办法&#xff0c;遇见的狗喷子太多了&#x1f436;】欢迎大家在评论区留言&#xff0c;指正文章中的信息错误有一些其他相关的问题&#xff0c;可以直接评论区留言&#xff0c;作者看到会及时更新到文章末尾…

【thingsbord源码编译】 显示node内存不足

编译thingsbord显示报错 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory问题原因分析 重新安装java版本 编译通过

F1-score

F1-score F1-score 是一种衡量分类模型性能的指标&#xff0c;特别适用于处理极度不平衡的数据集&#xff0c;F1-score 的取值范围是从0到1&#xff0c;数值越大&#xff0c;表示性能越好。 计算公式&#xff1a; F1-score是精确率和召回率的调和平均数。 ∗ ∗ F 1 s c o r e…

数据分析的汇报与观点表达

什么是数据图表? 基于数据的规模,趋势,占比,关系等情况制作出来的图表。 什么是数据表达? 基于数据化的表、图、文说明事实表达观点。 目的 将业务细节转化成数据,借助数据来认知业务,数据表达就可以更好地说明现状,阐述事实,更多情况是论证观点。 为什么要基于数…

Ubuntu实战续篇:Apache httpd轻松搭建高效代理服务器

Ubuntu实战续篇&#xff1a;Apache httpd轻松搭建高效代理服务器 一、前言二、Ubuntu下的Apache配置文件概览三、配置并启用 Apache 代理服务 作者&#xff1a;高玉涵 时间&#xff1a;2024.7.11 21:06 博客&#xff1a;blog.csdn.net/cg_i 环境&#xff1a;Ubuntu 22.04.4 LTS…