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:文件在一个文件系统中的唯一标识】
- 软连接相当于快捷方式,如果更新软连接,相应的文件都会更新。但是如果删除软连接,源文件并不会受到影响;
- 硬链接有点像引用和指针的结合,当打开和修改它时,相应的文件随之改变,这个文件的硬链接的内容也会随之改变,因为所有的硬链接都拥有唯一的一个 inode 号【和源文件的相同】,指向的是同一文件;
- 软连接可以跨文件系统创建,也就是可以在某个分区中创建到另外一个分区的软连接;
- 硬链接则只能在本文件系统中使用,原理很简单,因为 inode 是这个文件在当前分区中的索引值,是相对于这个分区的,不能跨越文件系统;
- 最后一个区别是软连接可以连接任何文件或者文件夹,而硬链接则只能在文件之间创建;

浙公网安备 33010602011771号