| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Linux中的硬链接和软链接 -> 正文阅读 |
|
[系统运维]Linux中的硬链接和软链接 |
Linux中的硬链接和软链接节选自南大蒋炎岩老师操作系统网络课程笔记:(2021) 24 [持久化] 文件系统API 硬(hard)链接UNIX文件指针在UNIX中,文件和目录完全不是同一个概念,虽然我们平时看着它们仿佛并列地躺在某个文件夹下。但实际上,目录是树状结构组织的,而文件,却是每个目录指向某个文件的指针。并且,每个文件都有一个编号,可能会有多个目录下的多个指针都指向同一个编号的文件。它们虽然存在于不同的目录下,甚至名称也不同,但是同一个编号的文件是完全相同的,修改也是同步的。如下图所示: 我们可以做这样的测试: 创建测试目录并在其中的
创建
我们查看两个文件的内容,输出显示都是同样的Hello World:
这时,我们修改
结果两个文件都被修改了,这就是硬链接,我们可以通过
可以看到,两个文件其实是同一个编号的文件的不同链接。即硬链接的图示如下: 硬链接注意:
小知识:其实所有的文件都是硬连接 (
应用场景可以给文件起别名,同步,省空间。 需求:系统中可能有同一个运行库的多个版本
软(symbolic)链接软链接:在文件里存储一个 “跳转提示”,相当于”快捷方式“。
我们接着上面硬链接的例子来看一下二者的区别: 再在测试目录下创建
我们用-li参数查看测试目录中的三个文件:
在这里,b,c分别是a的硬、软链接。可以看到,a和c的文件编号是不一样的,因为它们是软链接,并且可以看到,c作为a的软链接,会有一个箭头指向a。但是,它们的修改仍然是同步的,因为我们在试图修改c的时候,系统会顺着上面输出的软链接箭头去寻找,直到找到一个真实的文件或者目录。我们还是来试一下:
与预期一致。此时测试目录下的链接关系应该如下图所示: 软链接可能带来的麻烦软链接可以随意创建 (当前可能不合法;但未来可能合法),操作系统在处理软链接时会执行路径解析,,允许多次间接链接,会有意想不到的复杂性 ,a → b → c (递归解析)。可以创建软连接的硬链接 (因为软链接也是文件),通过 符号链接成环? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 17:23:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |