1.Linux 链接概念

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

硬连接

硬链接指通过索引节点来进行连接。再Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给他分配一个编号,称为索引节点号。再Linux中,东哥文件名指向同一索引节点是存在的。比如:A 是 B 的 硬链接(A和B都是文件名)则A的目录项中的inode节点号与B 的目录项中的inode节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。

硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

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 09797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11f19797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11f29797649 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 fileor directory

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

3.总结

依此您可以做一些相关的测试,可以得到以下全部结论:

1).删除符号连接f3,对f1,f2无影响;

2).删除硬连接f2,对f1,f3也无影响;

3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;

4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

linux链接 .o,Linux 链接概念 - osc_8ieji7o1的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. linux系统上安装toma,Linux-tar - osc_btnnkvs0的个人空间 - OSCHINA - 中文开源技术交流社区...

    1. tar简介 https://zh.wikipedia.org/wiki/Tar Unix和类Unix系统上的压缩打包工具,可以将多个文件合并为一个文件,打包后的文件名亦为"tar&qu ...

  2. 华为路由器用Linux开发,华为路由器常用配置 - osc_1v2pb1nt的个人空间 - OSCHINA - 中文开源技术交流社区...

    该设备有   2个光口.8个电口 Interface                         IP Address/Mask      Physical   Protocol GigabitE ...

  3. linux ps ax tl,Linux常用指令 - osc_wa6fkyf0的个人空间 - OSCHINA - 中文开源技术交流社区...

    空格键    :向下翻动一页: [pagedown]:向下翻动一页: [pageup]  :向上翻动一页: /字符串     :向下搜寻[字符串]的功能: ?字符串     :向上搜寻[字符串]的功能 ...

  4. linux怎么卸载yam,linux 基本命令 - osc_foipyam7的个人空间 - OSCHINA - 中文开源技术交流社区...

    ls 命令为查看当前目录的信息,常用参数 -l :查看文件详细信息, -a :查看当前目录所有文件,包括隐藏文件 .file.可连打 ls -al cd 全程change directory ,接受目 ...

  5. linux文件权限 705,Linux 文件权限 - osc_86eb7mly的个人空间 - OSCHINA - 中文开源技术交流社区...

    文件权限 Linux 中任何一个文件都具有 「用户.用户组与其他用户」三种权限,一个用户可属于多个用户组.所有用户的相关信息都记录在 /etc/passwd 文件中,密码记录在 /etc/shaodw ...

  6. linux修改组群名字,Linux用户和组 - 回忆斑斑驳驳的个人空间 - OSCHINA - 中文开源技术交流社区...

    用户相关操作: 1)         su 用户:切换用户但不切目录 2)         su – 用户:切换用户并切换目录 3)         sudo:允许系统管理员让普通用户执行一些或者全部 ...

  7. Linux目录的可写意味着,Linux权限分析 - osc_h5427nyq的个人空间 - OSCHINA - 中文开源技术交流社区...

    在学习Linux的权限之前,我们先来理解几个概念: 可读,可写 .可执行 Linux的文件和目录有以下三种方式: r  .w .x:可读,可写 .可执行 r-可读(read) w-可写(write) ...

  8. 4核a5中断linux,中断与时钟 - osc_a5pzxo31的个人空间 - OSCHINA - 中文开源技术交流社区...

    0.序言 中断服务程序的执行并不存在于进程上下问中,要求中断服务程序的时间要尽量短.因此,Linux中断处理中引入上半部和下半部分离的机制.另外,内核对时钟的处理也是采用中断方式,而内核软件定时器最终 ...

  9. linux内核等价多路径路由,高级路由 - 我是*李世民*的个人空间 - OSCHINA - 中文开源技术交流社区...

    策略路由背后的概念 Linux内核在默认情况下使用两张路由表:一张表用于本地路由,另一张可以由管理员来配置.如果内核编译支持策略路由,那么可以有多大255张不同的.相互独立的路由表.策略路由背后的主要 ...

最新文章

  1. c+和python先学哪个比较好-C和Python我该先学什么?
  2. 浅谈ssh(struts,spring,hibernate三大框架)整合的意义及其精髓
  3. 第12天学习Java的笔记(数组小练习,数组与方法)
  4. ASP.NET MVC必知必会知识点总结(二)
  5. Kubernetes-基于EFK进行统一的日志管理原理(kibana查询语法)
  6. c定义一个整型数组_滨州学院C语言作业讲解有序数组插入
  7. opencv_haartraining.exe 分类器训练----命令执行,执行项学习(1)
  8. java对象值传递和对象传递的总结
  9. 《空间谱估计理论与算法》学习笔记001-绪论
  10. ospfdr选举规则_DR/BDR详细选举过程
  11. matlab shading 的用法说明
  12. linux红帽子安装驱动,安装红帽子使用有megaSR swraid驱动程序和OS推进指点的嵌入式SATA控制器常见设备使用情况的...
  13. 蓝桥杯 - 明码 java
  14. eclipse问题(!MESSAGE Unhandled event loop exception !STACK 0 java.lang.NullPointerException at org.e)
  15. 12.5--卡片式布局
  16. D L N A介 绍
  17. JAVA计算机毕业设计租房管理系统Mybatis+系统+数据库+调试部署
  18. 坑一:canal 的一处TODO 引发的一地华子
  19. [ROC-RK3399-PC Pro] 手把手教你移植主线U-Boot(基于v2022.04-rc5版本)
  20. CUMTOJ算法实验四

热门文章

  1. x3-02 java_Day13 -- Java流程控制02
  2. 七夕秀恩爱新姿势!这波操作我给十分!
  3. 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之一
  4. 取MapString,sitemap中的全部key
  5. 嵌入式linux调试技术
  6. 开机显示c:\windows\windows32\config\system文件损坏或丢失的解决方法(收集)
  7. 207. Course Schedule
  8. CodeForces 841C (C) Leha and Function 贪心
  9. 扩展欧几里得算法 POJ 1061
  10. pythonxml模块高级用法_Python利用ElementTree模块处理XML的方法详解