Symbolic link and hard link的差异(转)ITeye - 众发娱乐

Symbolic link and hard link的差异(转)ITeye

2019年02月26日14时48分11秒 | 作者: 怀蕾 | 标签: 文件,符号,节点 | 浏览: 1058

Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默许情况下,ln指令产僵硬链接。

硬衔接
硬衔接指经过索引节点来进行衔接。在Linux的文件体系中,保存在磁盘分区中的文件不论是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种衔接就是硬衔接。硬衔接的作用是答应一个文件具有多个有用路径名,这样用户就能够树立硬衔接到重要文件,以避免“误删”的功用。其原因如上所述,由于对应该目录的索引节点有一个以上的衔接。只删去一个衔接并不影响索引节点自身和其它的衔接,只有当最终一个衔接被删去后,文件的数据块及目录的衔接才会被开释。也就是说,文件真实删去的条件是与之相关的一切硬衔接文件均被删去。

【软衔接】
别的一种衔接称之为符号衔接(Symbolic Link),也叫软衔接。软链接文件有类似于Windows的快捷方式。它实际上是一个特别的文件。在符号衔接中,文件实际上是一个文本文件,其间包括的有另一文件的方位信息。

下面是一些比如:
keney@keney-laptop ~ touch f1  #创立一个测验文件f1
keney@keney-laptop ~ ln f1 f2  #创立f1的一个硬衔接文件f2
keney@keney-laptop ~ ln -s f1 f3  #创立f1的一个符号衔接文件f3
keney@keney-laptop ~ ls -li  # -i参数显示文件的inode节点信息

1284 -rw-rr 2 keney keney  0 2009-05-24 10:44 f1
1284 -rw-rr 2 keney keney  0 2009-05-24 10:44 f2
1340 lrwxrwxrwx 1 keney keney  2 2009-05-24 10:45 f3 - f1

从上面的成果中能够看出,硬衔接文件f2与原文件f1的inode节点相同,均为1284,可是符号衔接文件的inode节点不同。

keney@keney-laptop ~ echo "I am f1 file" f1
keney@keney-laptop ~ cat f1
I am f1 file
keney@keney-laptop ~ cat f2
I am f1 file
keney@keney-laptop ~ cat f3
I am f1 file
keney@keney-laptop ~ rm -f f1
keney@keney-laptop ~ cat f2
I am f1 file
keney@keney-laptop ~ cat f3
cat: f3: No such file or directory

当删去原始文件f1后,硬衔接f2不受影响,可是符号衔接f1文件无效

依此可见:
1).删去符号衔接f3,对f1,f2无影响;
2).删去硬衔接f2,对f1,f3也无影响;
3).删去原文件f1,对硬衔接f2没有影响,导致符号衔接f3失效;
4).一起删去原文件f1,硬衔接f2,整个文件会真实的被删去。


转自:
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表众发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章