Linux软连接和硬链接

转载 2016年05月30日 10:23:00


1.Linux链接概念
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

【硬连接】
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

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

2.通过实验加深理解
[oracle@Linux]$ touch f1          #创建一个测试文件f1
[oracle@Linux]$ ln f1 f2          #创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3       #创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li            # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx  1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

从上面的结果中可以看出,硬连接文件f2与原文件f1的inode节点相同,均为9797648,然而符号连接文件的inode节点不同。

[oracle@Linux]$ echo "I am f1 file" >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm -f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory

通过上面的测试可以看出:当删除原始文件f1后,硬连接f2不受影响,但是符号连接f1文件无效

3.总结
依此您可以做一些相关的测试,可以得到以下全部结论:
1).删除符号连接f3,对f1,f2无影响;
2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

 

硬链接和软链接的区别和作用

首先说说目录的本质和节点的概念:在linux系统下一切皆文件,目录它也是一个文件,只不过在它里面存储的是一张表的文件。而节点就类似我们c语言中学过的数组的下标,我们可以把每个文件都看成是数组中的元素,...
  • mahao1107
  • mahao1107
  • 2015年07月12日 18:01
  • 10185

linux中软链接和硬链接的区别与小结

ln命令   该命令在文件之间创建链接。这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题。 ...
  • u010944778
  • u010944778
  • 2014年12月02日 21:33
  • 16293

Linux中软连接和硬链接

软连接和硬链接一直记不住具体的区别,现在总结一下
  • u012741741
  • u012741741
  • 2016年06月15日 21:29
  • 1913

Linux下的硬链接和软连接

首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文...
  • u012110719
  • u012110719
  • 2014年12月18日 17:36
  • 754

Linux 硬链接与软链接

原贴:http://www.51testing.com/?26162/action_viewspace_itemid_17598.htmlLinux 硬链接与软链接2007-08-05 10:19:4...
  • chinalinuxzend
  • chinalinuxzend
  • 2007年09月06日 20:37
  • 7088

硬链接与软链接的联系与区别

硬链接与软链接的联系与区别 我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata) 。用户数据,即文件数据块 (data ...
  • smilesundream
  • smilesundream
  • 2017年04月17日 20:53
  • 679

Linux中的硬链接和软链接

在Windows操作系统中,我们经常会给一个文件创建一个快捷方式到桌面上,给其取一个自定义的文件名,然后可以通过该快捷方式来操作该文件,比较方便地共享了该文件。在Linux中也有类似快捷方式的方法来实...
  • hulifangjiayou
  • hulifangjiayou
  • 2015年08月27日 11:27
  • 698

Linux 硬链接与软连接

情景说明: 有时候在Linux下我们有一个大的工程跟绝对路径相关,现在又想通过eclipse查看源码和修改源码,那么问题来了: 1.如果我们把源码拷贝一份到eclipse工程里面,那么此时修改了某...
  • wy7980
  • wy7980
  • 2015年06月09日 10:47
  • 714

linux下软连接与硬链接的本质区别

软连接跟硬链接最大的区别在于: 1.文件A和文件B的inode号码一样,对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard ...
  • daiyudong2020
  • daiyudong2020
  • 2016年08月02日 18:18
  • 1107

Linux中的In命令-软链接和硬链接

ln是linux中一个非常重要命令。它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是:  ln -s  源文件 目标文件    -s 是 symboli...
  • xiaohaijiejie
  • xiaohaijiejie
  • 2017年04月27日 21:34
  • 945
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux软连接和硬链接
举报原因:
原因补充:

(最多只允许输入30个字)