Linux——软链接、硬链接

Linux 系统中有软连接和硬链接两种特殊的“文件”

参考:https://www.cnblogs.com/smalldirector/archive/2012/03/19/2405660.html

硬链接:可以看作类似于一个文件的 “指针”(也不完全相同)【允许一个文件有多个路径,可对重要文件建立硬链接,防止误删】 。

软连接:实际上可以看作是Windows中的快捷方式【删除源文件,快捷方式也访问不了】。

 

创建方法:

1.硬链接 :

ln   source target 

2.软连接(符号链接)

ln -s source target

 测试创建:

[root@ww/]# cd /home
[root@ww home]# touch f1          # 创建一个测试文件f1
[root@ww home]# ls
f1
[root@ww home]# ln f1 f2          # 创建f1的一个硬连接文件f2
[root@ww home]# ln -s f1 f3       # 创建f1的一个符号连接文件f3

测试修改:

 修改任意一个文件,其它两个文件内容均一起更新;

测试删除:

[root@ww home]# rm -f f1
[root@ww home]# cat f2
  I am f1 file
[root@ww home]# cat f3
cat: f3: No such file or directory
  • 删除软连接 f3,对f1、f2无影响;

  • 删除硬连接 f2,对f1、f3也无影响;

  • 删除原文件f1,对硬连接f2没有影响,导致软连接 f3 失效;

  • 同时删除原文件f1,硬连接f2,整个文件会真正的被删除;

 

软硬链接的区别:

[root@ww home]# ls -li            # -i参数显示文件的inode节点信息
397247 -rw-r--r-- 2 root root     0 Mar 13 00:50 f1
397247 -rw-r--r-- 2 root root     0 Mar 13 00:50 f2
397248 lrwxrwxrwx 1 root root     2 Mar 13 00:50 f3 -> f1

 【inode:文件在一个文件系统中的唯一标识

  1. 软连接相当于快捷方式,如果更新软连接,相应的文件都会更新。但是如果删除软连接,源文件并不会受到影响;
  2. 硬链接有点像引用和指针的结合,当打开和修改它时,相应的文件随之改变,这个文件的硬链接的内容也会随之改变,因为所有的硬链接都拥有唯一的一个 inode 号【和源文件的相同】,指向的是同一文件;
  3. 软连接可以跨文件系统创建,也就是可以在某个分区中创建到另外一个分区的软连接;
  4. 硬链接则只能在本文件系统中使用,原理很简单,因为 inode 是这个文件在当前分区中的索引值,是相对于这个分区的,不能跨越文件系统;
  5. 最后一个区别是软连接可以连接任何文件或者文件夹,而硬链接则只能在文件之间创建;
posted @ 2021-03-17 18:23  有没有123  阅读(35)  评论(0)    收藏  举报