Linux的软硬链接

在linux系统中有种文件是链接文件,可以为解决文件的共享使用。链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link)

硬链接

用法: ln [源文件] [目标文件]

英文原意:link

  1. 拥有相同的i节点和存储block块,可以看做是同一个文件
  2. 可通过i节点识别
  3. 不能跨分区
  4. 不能针对目录使用

一个分区要想使用,要把它分成等大小的block数据块,在分区之前会有分区表,给每个文件建一行相关数据,保存了i节点号,修改的时间以及存储的位置

39

如图:比如一个用户想要知道A文件,他不是直接到硬盘中去取数据,而是会先去搜索分区表,然后确定到i节点号,来确定文件的这一行数据,然后根据存储位置来读取到硬盘中的数据

假设我给A文件创建了一个硬链接BBA有相同的i节点号,那么他们的内容也肯定是相同的,也就是说他们两个就是一模一样的文件,只不过名字不一样

我们不建议使用硬链接,首先是很难区分,其次限制较多,很容易产生错误

软链接

用法: ln -s [源文件] [目标文件]

  1. 类似Windows快捷方式
  2. 软链接拥有自己的i节点和Block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据
  3. 软链接文件权限都为rwxrwxrwx
  4. 修改任意文件,另一个都改变
  5. 删除原文件,软链接不能使用

40

同样的我们为A创建一个软链接B,这时候B是有自己的i节点号,时间,存储的位置的,当然也有对应的数据块,但是这个数据块里面保存的是Ai节点号,时间,存储位置,所以在通过这个来读取原始数据,所以和这个原理和Windows快捷方式的原理一模一样,比如我们创建了桌面的某个文件的快捷方式,通过这个快捷方式找到原文件在执行。如果我们修改A,软链接就会找不到B所指的Ai节点,就不能使用了

0%