Linux连接文件
2022/4/7 7:19:14
本文主要是介绍Linux连接文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、概念
1、什么是硬连接?
硬链接是多个文件都指向同一个inode,硬链接知识点:
①、具有相同inode的多个文件互为硬链接文件,创建硬链接相当于文件实体多了入口。
②、对于硬链接文件,只有删除了源文件以及对应的所有硬连接文件,文件实体才会被删除。
③、根据硬链接文件的特点,我们可以通过给文件创建硬连接的方式来防止文件误删除。
④、不论修改源文件还是连接文件,另一个文件的数据都会被改变。
⑤、硬连接不能跨文件系统。
⑥、硬连接不能连接到目录。
2、什么是软连接?
符号连接类似Windows下的快捷方式,符号链接也叫做软连接,软连接要用的多。符号连接相当于创建了一个独立的文件,这个文件会让数据读取指向它连接的哪个文件的文件名。软连接的特点:
①、可以连接到目录。
②、可以跨文件系统。
③、删除源文件以后,软连接文件也就“打不开了”。
④、符号连接文件通过->来指示具体的连接文件。
⑤、符号连接要使用绝对路径,否则连接出问题。
二、实验
1、写一个简单的C程序,编译成一个可执行文件:
1 #include <stdio.h> 2 3 4 5 int main() 6 { 7 printf("Hello Linux!\r\n"); 8 return 0; 9 }
命令行输入:gcc hello.c -o hello
执行这个文件:
2、创建2个硬连接:
ln命令不带参数,默认就是创建硬连接,从上图可以看出,创建出来的硬连接(hello1和hello2)跟源文件(hello)的inode是一样的;
3、验证
3.1 验证硬连接的第②个结论:
删除掉源文件(hello),hello1和hello2还是可以正常执行:
由此可以验证硬连接的第②个结论。
3.2 验证硬连接的第④个结论:
创建一个目标文件为hello.c的硬连接:
修改源文件的内容:
由此可以验证硬连接的第④个结论。
3.3 验证软连接的第⑤个结论:
注意,上图是一个错误的示范,因为没有使用绝对路径,所以当hello1被复制到其他的目录下时,cp命令没有使用-d参数,其实它已经不是一个软连接了,由图中可以看到它的颜色从原来的蓝色变为绿色,所以它还可以执行成功
上图中创建软连接的方法才是正确的,应该加上绝对路径!输入ll -i hello*命令后看到软连接和源文件的inode是不一样的。
上图中的复制方式才是正确的,应该加上参数-d,这样复制到test1目录后,hello2还是蓝色的,是一个软连接。
3.4 验证软连接的第③个结论
这篇关于Linux连接文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南