Linux软连接和硬链接

1.Linux链接概念
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

【硬连接】
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

【软连接】
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

2.通过实验加深理解
[oracle@Linux]$ touch f1          #创建一个测试文件f1
[oracle@Linux]$ ln f1 f2          #创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3       #创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li            # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx  1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

从上面的结果中可以看出,硬连接文件f2与原文件f1的inode节点相同,均为9797648,然而符号连接文件的inode节点不同。

[oracle@Linux]$ echo "I am f1 file" >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm -f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory

通过上面的测试可以看出:当删除原始文件f1后,硬连接f2不受影响,但是符号连接f1文件无效

3.总结
依此您可以做一些相关的测试,可以得到以下全部结论:
1).删除符号连接f3,对f1,f2无影响;
2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python内置函数分类_Python 69个内置函数分类总结

1 内置函数 Python3解释器中内置了69个常用函数,属于底层的函数,它们到处可用。有些对大家来说比较熟悉,比如abs(), max(), sum()... 也有一些比较陌生,比如locals(), all(), compile(), getattr()... 今天按照类别扼要总结。 2 类…

pyspark 修改python版本_python – Pyspark从日期到字符串更改列的类型

我有以下数据帧:corr_temp_df[(vacationdate, date),(valueE, string),(valueD, string),(valueC, string),(valueB, string),(valueA, string)]现在我想将列vacationdate的数据类型更改为String,这样数据帧也会采用这种新类型并覆盖所有条目的数据类型数据.例如.写…

ubuntu下IP、DNS配置

一、配置ip ubuntu的网络配置信息放在 /etc/network/interfaces 中,如果配置动态获取ip,则在上述文件中加入以下内容:auto eth0iface eth0 inet dhcp如果配置静态ip,则添加如下内容:auto eth0 iface eth0 inet statica…

python向空列表添加列表_Python列表核心知识点汇总

千里之行,始于足下。要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好。今天带大家仔细温习一下Python的列表。温故而知新,不亦说乎。当然,温习的同时也要发散思考,因为有些看似无关紧要的、约定俗成的语言习…

伪指令endp告诉汇编程序_全国2004年10月高等教育自学考试微型计算机原理及应用试题历年试卷...

&nbsp&nbsp全国2004年10月高等教育自学考试微型计算机原理及应用试题课程代码:02277一、单项选择题(本大题共15小题,每小题1分,共15分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内…

C语言 if的条件相关

Expressions connected by && or || are evaluated left to right, and it is guaranteed that evaluation will stop as soon as the truth or falsehood is known. ----引用自 The C Programming Language 此句表明在C语言中如果多个条件用&&或者||连接的情况…

关于config_site.h文件【译】

编译前的准备 创建config_site.h文件 config_site.h文件的作用 创建config_site.h文件时的注意点 创建config_site.h文件 在编译源代码之前,必须先创建pjlib/include/pj/config_site.h文件(可以为空) 提示:当使用基于Makefile的编译系统,…

sharepoint2010的弹出等待提示的对话框

根据MSDN的资料。我做了个测试&#xff0c;代码如下&#xff1a; <% Assembly Name"$SharePoint.Project.AssemblyFullName$" %> <% Assembly Name"Microsoft.Web.CommandUI, Version14.0.0.0, Cultureneutral, PublicKeyToken71e9bce111e9429c" …

java中输出值保留四位小数_Java工程师(3).变量和数据类型

变量什么是变量变量是内存中的一块存储空间&#xff0c;用于保存Java程序准备使用的数据。可以为变量赋予一个简短并易于记忆的名字方便我们使用变量的值。int 变量的声明因为经常要保存一些数据&#xff0c;所以变量是很常用的。使用变量必须先声明变量&#xff1a;int 变量的…

扫描路径_npj: 纳米团簇表面的自动扫描—吸附位点和扩散路径

海归学者发起的公益学术平台分享信息&#xff0c;整合资源交流学术&#xff0c;偶尔风月金属纳米团簇常用于催化&#xff0c;因具有较高的分散性&#xff0c;应用领域不断扩大。与较大的金属纳米颗粒相比&#xff0c;其固有活性通常要高出数倍。这种高出的催化活性主要归因于其…

pjsip的编译及简单使用

1.下载下载地址&#xff1a;http://www.pjsip.org/download.htm我下载的是pjproject-1.12.zip2.编译将下载的文件解压后&#xff0c;目录下有pjproject-vs8.sln&#xff0c;可以直接使用vs2005打开&#xff0c;目录下的readme.txt文件中有编译说明&#xff0c;关于windows下的注…

innodb 悲观锁 乐观锁_mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁

mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁乐观锁总是假设最好的情况&#xff0c;每次去拿数据的时候都认为别人不会修改&#xff0c;所以不会上锁&#xff0c;但是在更新的时候会判断一下在此期间别人有没有去更新这个数据&#xff0c;可以使用版本号机制和CAS算法实现…

IOS之导航控制器与表视图

7.1 导航控制器 7.2 创建第一级控制器 7.3 第一个二级控制器 7.4 第一个三级控制器 7.5 第二个二级表控制器 7.6 第三个二级表控制器 7.7 第四个二级表控制器 7.8 第五个二级表视图控制器 7.8 第六个二级表视图控制器 7.1 导航控制器 关于导航控制器和表视图 导航控制器和表视图…

windows如何使用ssh登录ubuntu

1.ssh的安装gavinubuntu:~$ sudo apt-get install ssh2.生成密钥 [html] view plaincopyprint?gavinubuntu:~$ ssh-keygen [plain] view plaincopyprint?Generating public/private rsa key pair. Enter file in which to save the key (/home/gavin/.ssh/id_rsa): …

抖音最强python_装逼篇 | 抖音超火的九宫格视频是如何生成的,Python 告诉你答案...

1. 场景如果你经常刷抖音和微信朋友圈&#xff0c;一定发现了最近九宫格短视频很火&#xff01;从朋友圈九宫格图片&#xff0c;到九宫格视频&#xff0c;相比传统的图片视频&#xff0c;前者似乎更有个性和逼格除了传统的剪辑软件可以实现&#xff0c;是否有其他更加快捷方便的…

gin redis 链接不上_Redis 高并发问题,及解决方案!

&#xff08;一&#xff09;redis技术的使用&#xff1a;redis真的是一个很好的技术&#xff0c;它可以很好的在一定程度上解决网站一瞬间的并发量&#xff0c;例如商品抢购秒杀等活动。。。redis之所以能解决高并发的原因是它可以直接访问内存&#xff0c;而以往我们用的是数据…

任务管理平台_软件品质评测系统任务分发管理平台

testkuaibao|软件测试自学公众号1●为什么需要任务分发平台●在一个基本的评测系统中我们有了评测执行工具、评测数据、评测环境就能进行一次评测任务的执行&#xff0c;但现在是大数据时代&#xff0c;我们更多的需求是针对大量数据进行评测。比如在输入法评测中我们有10000个…

用mingw链接msvc生成的库时,无定义chkstk问题的解决

在用mingw链接msvc生成的库时常常产生这样的链接错误&#xff1a; undefined reference to _chkstk 这是因为chkstk is a stack-probing thing that MSVC generates whenallocating big stack frames), and that GCC has an equivalent inlibgcc &#xff08;called _alloca).也…

[转载]Visual Studio 2010敏捷利剑:详解Scrum

Visual Studio 2010敏捷利剑:详解Scrum 【IT168 专稿】随着微软Visual Studio 2010 Ultimate Beta2版本的发布&#xff0c;除了它提供协同一致的ALM(应用程序生命周期)管理工具外&#xff0c;MSF for Agile Software Development过程框架从4.2升级到5.0&#xff0c;并且是以Scr…

网站收录工具(php导航自动收录源码)_10步把企业网站优化做到极致,SEO优化的核心知识...

对于企业网站优化&#xff0c;重要的就3点&#xff0c;内容原创、外链建设、内部优化&#xff0c;其它网站优化也会涉及到这些&#xff0c;但是企业站就变的简单的多了&#xff0c;下面10步让你把企业网站优化做到极致。第一步&#xff1a;首先域就是让搜索引擎选择我们网站的主…