三分钟了解学会软链接和硬链接

简介: 符号链接又叫软链接,和原文件不是一个文件 例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链接也就都被破坏了。软链接有自己的node,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。符号链接可以跨越文件系统,也可以为目录建立。

一、软链接和硬链接


1、软链接

符号链接又叫软链接,和原文件不是一个文件 例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链接也就都被破坏了。软链接有自己的node,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。符号链接可以跨越文件系统,也可以为目录建立。


创建软链接文件ln -s 原文件 目标文件


图解

4c9483eab55e43f5beb27bddb9caac8a.png

样例:

[root@ls_nfqZ8Onc home]# mkdir /home/data
[root@ls_nfqZ8Onc home]# cd /home/data
[root@ls_nfqZ8Onc data]# touch file
[root@ls_nfqZ8Onc data]# ln -s file file_copy
[root@ls_nfqZ8Onc data]# ls
file  file_copy
[root@ls_nfqZ8Onc data]# stat file
  File: file
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d  Inode: 656900      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-14 17:45:48.083449607 +0800
Modify: 2022-07-14 17:45:48.083449607 +0800
Change: 2022-07-14 17:45:48.083449607 +0800
 Birth: -
[root@ls_nfqZ8Onc data]# stat file_copy 
  File: file_copy -> file
  Size: 4           Blocks: 0          IO Block: 4096   symbolic link
Device: fd01h/64769d  Inode: 656901      Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-14 17:46:46.876686098 +0800
Modify: 2022-07-14 17:46:41.575664771 +0800
Change: 2022-07-14 17:46:41.575664771 +0800
 Birth: -

当删除原文件时:

4152c31516f442238ffd44cdf0a022bc.png

[root@ls_nfqZ8Onc data]# rm -r file
rm: remove regular empty file 'file'? y
[root@ls_nfqZ8Onc data]# ls
file_copy
[root@ls_nfqZ8Onc data]# ls -l
total 0
lrwxrwxrwx 1 root root 4 Jul 14 17:46 file_copy -> file

2、硬链接

硬链接 只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。

当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在件结

构中的位置

创建硬链接文件:ln 原文件 目标文件

图解b55f8228b5f7468e858d4306cc1a3891.png

[root@ls_nfqZ8Onc data]# ln file file_copy1
[root@ls_nfqZ8Onc data]# stat file
  File: file
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d  Inode: 656900      Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-14 18:13:04.462817371 +0800
Modify: 2022-07-14 18:13:04.462817371 +0800
Change: 2022-07-14 18:13:19.030870719 +0800
 Birth: -
[root@ls_nfqZ8Onc data]# stat file_copy1
  File: file_copy1
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d  Inode: 656900      Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-14 18:13:04.462817371 +0800
Modify: 2022-07-14 18:13:04.462817371 +0800
Change: 2022-07-14 18:13:19.030870719 +0800
 Birth: -
[root@ls_nfqZ8Onc data]# rm -r file
rm: remove regular empty file 'file'? y
[root@ls_nfqZ8Onc data]# ls
file_copy1
[root@ls_nfqZ8Onc data]# stat file_copy1
  File: file_copy1
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d  Inode: 656900      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-14 18:13:04.462817371 +0800
Modify: 2022-07-14 18:13:04.462817371 +0800
Change: 2022-07-14 18:27:58.162043692 +0800
 Birth: -


相关文章
Layui 内置方法 - layer.closeAll(关闭所有层)
Layui 内置方法 - layer.closeAll(关闭所有层)
494 0
arm-linux-gcc的下载与安装步骤
arm-linux-gcc的下载与安装步骤
2077 2
|
7月前
2024年全国数学建模B题赛后感
2024年参加全国大学生数学建模比赛,我们选择了B题。然而,团队中只有我真正参与解题,其他成员因缺乏相关知识几乎无法协助。三天三夜,我独自完成代码、论文撰写等工作,期间经历了数据调试与参数优化的艰难过程。尽管最终提交时发现忘了写标题,但幸运地获得省一等奖。这次经历虽累,但也让我明白团队协作和赛前准备的重要性,成果来之不易,努力终有回报!
193 1
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
从五子棋到DeepSeek:揭开模式匹配的奥秘
本文通过五子棋AI与大语言模型DeepSeek的对比,探讨了模式匹配技术在不同领域的应用与相似性。从五子棋的棋局分析到自然语言处理,模式匹配构成了人工智能决策的核心机制。文章揭示了AI如何通过识别数据中的规律进行预测与生成,并展望了该技术在未来医疗、金融、自动驾驶等领域的广泛应用前景,展现了从简单游戏到智能世界的演进路径。
195 2
|
11月前
|
人工智能 自然语言处理 自动驾驶
当视觉大模型陷入认知失调,马里兰大学构建了一个幻觉自动生成框架
马里兰大学研究人员提出AutoHallusion框架,旨在通过自动化生成幻觉图像和问题对,深入研究大型视觉语言模型(LVLMs)中的幻觉现象。幻觉指LVLMs生成与图像内容不符的描述,限制其广泛应用。AutoHallusion通过异常对象插入、配对对象插入和相关对象删除三种策略,揭示LVLMs在处理视觉信息时的弱点。实验结果显示,该框架能在多种SOTA模型上以高成功率引发幻觉,为改进模型提供宝贵线索。未来将提升图像质量和扩展问题设计范围。论文链接:https://arxiv.org/pdf/2406.10900
197 27
|
10月前
|
C语言
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
572 5
|
9月前
|
存储 算法 C++
深入浅出 C++ STL:解锁高效编程的秘密武器
C++ 标准模板库(STL)是现代 C++ 的核心部分之一,为开发者提供了丰富的预定义数据结构和算法,极大地提升了编程效率和代码的可读性。理解和掌握 STL 对于 C++ 开发者来说至关重要。以下是对 STL 的详细介绍,涵盖其基础知识、发展历史、核心组件、重要性和学习方法。
|
SQL 存储 分布式计算
Kylin使用心得:从入门到进阶的探索之旅
【5月更文挑战第2天】Apache Kylin是开源大数据分析平台,提供亚秒级OLAP查询。本文深入解析Kylin的工作原理,包括预计算模型Cube、构建过程和查询引擎。常见问题涉及Cube设计、查询性能和资源管理,解决方案涵盖合理设计、性能监控和测试验证。文中还分享了Cube创建的JSON示例,并探讨了Cube构建优化、查询优化、与其他组件集成、监控维护及生产环境问题解决。通过学习和实践,读者能有效提升数据洞察力和决策效率。
740 5
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
539 1
|
JSON API 数据格式
使用RestTemplate发送HTTP请求
使用RestTemplate发送HTTP请求
264 0