硬连接(hard link)

硬连接是通过文件系统的inode连接来产生新文件名,而不是产生新文件
如为filename创建一个硬连接文件filename_hardlink:
Linux连接文件ln
如上图,因为硬连接产生不同的文件名都指向相同的inode,所以修改任意一方的属性或block数据,其他文件访问到的数据也联动改变了

x先做一个硬连接的测试:
先创建一个新文件:
Linux连接文件ln
再创建该文件的一个硬连接:
(可能因为缓存的原因,所以总量和inode的使用量和上图有出入)
Linux连接文件ln

我们可以看到硬连接创建的本质就是在file-inode映射表多了一条数据,并且使文件连接数加1,而实际并不产生新的inode和block。
这样的话,rm操作删除文件,无非也就是移除file-inode映射表里面的内容,即把文件的连接数减1,而实际的文件数据依然存在,只有当文件的连接数减到0,实际的文件数据才会被删除。
但是硬连接有两个局限:
1.不能跨文件系统
2.不能对目录创建硬连接

关于连接数的拓展:
当新建一个目录时,新目录的连接数为2,上一层的目录连接数会增加1。
因为新目录创建会产生...两个文件,而
/newDir/newDir/.指向的是同一个inode
/newDir/../也指向的是同一个inode

软连接(symbolic link或叫符号连接)

软连接类似windows系统的快捷方式功能的文件,可以快速连接到目标文件或目录
symbolic link与hard link 不同,symbolic link会创建一个独立的文件,即会产生新的inode和block,而该block的数据指向原文件的文件名
具体如下图:
Linux连接文件ln
所以当原文件删除之后,symbolic link文件打不开,其实就是symbolic link文件的block指向源文件的连接断了(或者说找不到源文件名)
关于symbolic link的操作测试:
Linux连接文件ln

相关文章:

  • 2022-02-06
  • 2022-01-05
  • 2021-06-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-01
  • 2022-12-23
  • 2021-07-15
  • 2022-12-23
  • 2022-01-08
  • 2022-12-23
相关资源
相似解决方案