Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)即软链接。默认情况下,ln命令产生硬链接。
ln -s f1 f3 #创建 f1 文件的软链接 f3
ln f1 f2 #创建f1 文件的硬链接文件 f2
ls -li # -i参数显示文件的inode节点信息
实例演示
----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
tianye4@lhd-Linux:~/openwrt$ touch f1 #创建原始文件f1,内容为空
tianye4@lhd-Linux:~/openwrt$ ln f1 f2
tianye4@lhd-Linux:~/openwrt$ ln -s f1 f3
tianye4@lhd-Linux:~/openwrt$
tianye4@lhd-Linux:~/openwrt$
tianye4@lhd-Linux:~/openwrt$ ls -li
total 0
3278348 -rw-rw-r-- 2 tianye4 tianye4 0 1月 20 17:01 f1
3278348 -rw-rw-r-- 2 tianye4 tianye4 0 1月 20 17:01 f2
3278445 lrwxrwxrwx 1 tianye4 tianye4 2 1月 20 17:01 f3 -> f1
从上面的结果中可以看出,硬连接文件f2与原文件f1的inode节点相同,均为3278348,然而符号连接文件的inode节点不同
----------------------------------------------------------------------------------------------------------
tianye4@lhd-Linux:~/openwrt$ echo helloworld >>f1 #修改原始f1 文件后,软链接文件和硬链接文件也跟着发生了变化
tianye4@lhd-Linux:~/openwrt$ cat f1
helloworld
tianye4@lhd-Linux:~/openwrt$ cat f2
helloworld
tianye4@lhd-Linux:~/openwrt$ cat f3
helloworld
----------------------------------------------------------------------------------------------------------
tianye4@lhd-Linux:~/openwrt$ rm -rf f1 #删除原始文件f1
tianye4@lhd-Linux:~/openwrt$ ls -li
total 4
3278348 -rw-rw-r-- 1 tianye4 tianye4 11 1月 20 17:09 f2
3278445 lrwxrwxrwx 1 tianye4 tianye4 2 1月 20 17:01 f3 -> f1
tianye4@lhd-Linux:~/openwrt$ cat f2
helloworld
tianye4@lhd-Linux:~/openwrt$ cat f3 #删除原始文件f1后,符号连接f3文件无效
cat: f3: No such file or directory
通过上面的测试可以看出:当删除原始文件f1后,硬连接f2不受影响,但是符号连接f3文件无效
----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
3.总结
依此测试,可以得到以下结论:
1).删除符号连接f3,对f1,f2无影响;
2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。