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

目录
相关文章
|
1月前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
83 15
|
2月前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
82 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
2月前
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
240 14
|
2月前
|
存储 NoSQL Linux
linux积累-core文件是干啥的
核心文件是Linux系统在程序崩溃时生成的重要调试文件,通过分析核心文件,开发者可以找到程序崩溃的原因并进行调试和修复。本文详细介绍了核心文件的生成、配置、查看和分析方法
118 6
|
2月前
|
存储 NoSQL Linux
linux之core文件如何查看和调试
通过设置和生成 core 文件,可以在程序崩溃时获取详细的调试信息。结合 GDB 等调试工具,可以深入分析 core 文件,找到程序崩溃的具体原因,并进行相应的修复。掌握这些调试技巧,对于提高程序的稳定性和可靠性具有重要意义。
335 6
|
2月前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
117 13
|
9月前
|
Linux
百度搜索:蓝易云【Linux中如何对文件进行压缩和解压缩?】
这些是在Linux中进行文件压缩和解压缩的常见方法。根据您的需求和具体情况,可能会使用其他压缩工具和选项。您可以通过查阅相应命令的帮助文档来获取更多详细信息。
98 1
|
9月前
|
NoSQL Java Linux
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
|
9月前
|
算法 Java Linux
Linux下文件增删改查定位压缩操作与权限所属用户
Linux下文件增删改查定位压缩操作与权限所属用户
85 0
26Linux - 文件管理(文件压缩解压:bzip2)
26Linux - 文件管理(文件压缩解压:bzip2)
73 0