ZYNQ - 嵌入式Linux开发 -03- 连接文件

简介: ZYNQ - 嵌入式Linux开发 -03- 连接文件

linux连接文件两种方式


Linux有两种连接文件:符号连接(软连接)和硬链接,符号链接类似Windows下的快捷方式。硬链接通过文件系统的inode连接来产生新文件名,而不是产生新文件。

inode: inode 是 UNIX 操作系统中的一种数据结构,其本质是结构体,它包含了与文件系统中各个文件相关的一些重要信息。在 UNIX 中创建文件系统时,同时将会创建大量的 inode 。通常,文件系统磁盘空间中大约百分之一空间分配给了 inode 表。他用于记录文件属性,一个文件一个inode。inode 相当于文件ID,查找文件的时候要先找到inode,然后才能读出文件的内容。

硬链接


硬链接是多个文件都指向同一个inode。具有相同inode,的多个文件互为硬链接文件,创建硬链接相当于文件实体多了入口。对于硬链接文件,只有删除了源文件以及对应的所有硬连接文件,文件实体才会被删除。根据硬链接文件的特点,我们可以通过给文件创建硬连接的方式来防止文件误删除。不论修改源文件还是连接文件,另一个文件的数据都会被改变。

硬连接不能跨文件系统,不能连接到目录。因为这些限制,硬链接其实不常用。

下面对测试的C文件编译后可执行文件进行建立硬链接。

新建test.c文件,输入代码:

#include "stdio.h"
int main(){
  printf("hello_Word!\n");
}

然后进行编译

gcc test.c -o test

输入ls命令进行查看,此时已经生成了test可执行文件。

image.png

然后进行建立硬连接,在终端中输入以下指令:

ln test test1

然后再键入ls查看,发现已经建立了硬链接test1。

image.png

此时运行test1,可以正常运行。

image.png

键入以下代码进行查看连接的inode,

ls -l -i

image.png

如图所示,连接的两个inode相同,证明硬链接正常建立。

此时移除test的可执行文件可以正常执行test.c的代码功能。

image.png

符号连接(软连接)


符号连接类似Windows 下的快捷方式,符号链接也叫做软连接,软连接要用的多。符号连接相当于创建了一个独立的文件,这个文件会让数据读取指向它连接的哪个文件的文件名。

软连接可以连接到目录。可以跨文件系统。删除源文件以后,软连接文件也就“打不开了"。符号连接文件通过->来指示具体的连接文件。

在终端中输入以下指令进行建立软连接:

ln -s test test2

此时终端如下:

image.png

test2可执行文件标红,尝试执行test2无法正常执行。

image.png

这是因为输入需要建立的连接是test 这里找不到test所以也就无法进行连接。当重新进行编译生成test的可执行文件,此时可以正常建立软连接:

image.png

同时可以正常执行:

image.png

目录
相关文章
|
8月前
|
存储 数据管理 Linux
区分Linux中.tar文件与.tar.gz文件的不同。
总之,".tar"文件提供了一种方便的文件整理方式,其归档但不压缩的特点适用于快速打包和解压,而".tar.gz"文件通过额外的压缩步骤,尽管处理时间更长,但可以减小文件尺寸,更适合于需要节约存储空间或进行文件传输的场景。用户在选择时应根据具体需求,考虑两种格式各自的优劣。
1336 13
|
9月前
|
安全 Linux
Linux赋予文件000权限的恢复技巧
以上这些步骤就像是打开一扇锁住的门,步骤看似简单,但是背后却有着严格的逻辑和规则。切记,在任何时候,变更文件权限都要考虑安全性,不要无谓地放宽权限,那样可能
271 16
|
9月前
|
存储 Linux 数据处理
深入剖析Linux中一切即文件的哲学和重定向的机制
在计算机的奇妙世界中,Linux的这套哲学和机制减少了不同类型资源的处理方式,简化了抽象的概念,并蕴藏着强大的灵活性。就像变戏法一样,轻轻松松地在文件、程序与设备之间转换数据流,标准输入、输出、错误流就在指尖舞动,程序的交互和数据处理因此变得既高效又富有乐趣。
157 4
|
10月前
|
Ubuntu Linux
"unzip"命令解析:Linux下如何处理压缩文件。
总的来说,`unzip`命令是Linux系统下一款实用而方便的ZIP格式文件处理工具。本文通过简明扼要的方式,详细介绍了在各类Linux发行版上安装 `unzip`的方法,以及如何使用 `unzip`命令进行解压、查看和测试ZIP文件。希望本文章能为用户带来实际帮助,提高日常操作的效率。
2195 12
|
9月前
|
Linux
linux文件重命名命令
本指南介绍Linux文件重命名方法,包括单文件操作的`mv`命令和批量处理的`rename`命令。`mv`可简单更改文件名并保留扩展名,如`mv old_file.txt new_name.txt`;`rename`支持正则表达式,适用于复杂批量操作,如`rename 's/2023/2024/' *.log`。提供实用技巧如大小写转换、数字序列处理等,并提醒覆盖风险与版本差异,建议使用`-n`参数预览效果。
|
存储 缓存 安全
Linux系统开发: 命令进阶学习(一)
Linux系统开发: 命令进阶学习(一)
411 0
Linux系统开发: 命令进阶学习(一)
|
6月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
740 1
二、Linux文本处理与文件操作核心命令
|
6月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
435 137
|
6月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1152 58
|
5月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1026 2