1.Linux链接概念
Linux链接分两种,一种被称为硬链接(HardLink),另一种被称为符号链接(SymbolicLink)。默认情况下linux软连接和硬链接,ln命令形成硬链接。
【硬联接】
硬联接指通过索引节点来进行联接。在Linux的文件系统中linux软连接和硬链接,保存在c盘分区中的文件不管是哪些类型都给它分配一个编号linux软件下载,称为索引节点号(InodeIndex)。在Linux中,多个文件名指向同一索引节点是存在的。通常这些联接就是硬联接。硬联接的作用是容许一个文件拥有多个有效路径名,这样用户就可以构建硬联接到重要文件,以避免“误删”的功能。其缘由如上所述,由于对应当目录的索引节点有一个以上的联接。只删掉一个联接并不影响索引节点本身和其它的联接,只有当最后一个联接被删掉后,文件的数据块及目录的联接就会被释放。也就是说,文件真正删掉的条件是与之相关的所有硬联接文件均被删掉。
【软联接】
另外一种联接称之为符号联接(SymbolicLink),也叫软联接。软链接文件有类似于Windows的快捷方法。它实际上是一个特殊的文件。在符号联接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
2.通过实验加深理解
[oracle@Linux]$touchf1#创建一个测试文件f1
[oracle@Linux]$lnf1f2#创建f1的一个硬联接文件f2
[oracle@Linux]$ln-sf1f3#创建f1的一个符号联接文件f3
[oracle@Linux]$ls-li#-i参数显示文件的inode节点信息
total0
9797648-rw-r--r--2oracleoinstall0Apr2108:11f1
9797648-rw-r--r--2oracleoinstall0Apr2108:11f2
9797649lrwxrwxrwx1oracleoinstall2Apr2108:11f3->f1
从前面的结果中可以看出,硬联接文件f2与原文件f1的inode节点相同,均为9797648,但是符号联接文件的inode节点不同。
[oracle@Linux]$echo"Iamf1file">>f1
[oracle@Linux]$catf1
Iamf1file
[oracle@Linux]$catf2
Iamf1file
[oracle@Linux]$catf3
Iamf1file
[oracle@Linux]$rm-ff1
[oracle@Linux]$catf2
Iamf1file
[oracle@Linux]$catf3
cat:f3:Nosuchfileordirectory
通过前面的测试可以看出:当删掉原始文件f1后,硬联接f2不受影响,而且符号联接f1文件无效
3.总结
依此您可以做一些相关的测试,可以得到以下全部推论:
1).删掉符号联接f3,对f1,f2无影响;
2).删掉硬联接f2,对f1,f3也无影响;
3).删掉原文件f1linux培训班,对硬联接f2没有影响,造成符号联接f3失效;
4).同时删掉原文件f1,硬联接f2,整个文件会真正的被删掉。