Linux软连接和硬链接-实际操作一遍你就会懂!!!

转载 2016年05月30日 18:23:15

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,整个文件会真正的被删除。

 

完!


感谢作者:http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html

Linux中的硬链接和软链接

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

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

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

Linux中软连接和硬链接

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

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

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

Linux的inode、软链接、硬链接

关于inode、软硬链接的问题,最近几天看了很多资料,惊奇的发现竟然资料之间有所冲突。有的甚至自己和自己都有冲突。现在感觉自己已经初步理解了这三个概念,发布在此,希望可以减少网络上此类错误文章对新手的...
  • jiary5201314
  • jiary5201314
  • 2016年05月09日 16:04
  • 552

软连接与硬链接的区别

为test文件创建硬链接如下: shell-test:/u/nanaal/shell$ cp -l test test1 shell-test:/u/nanaal/shell$ l...
  • Angle502
  • Angle502
  • 2017年04月19日 20:13
  • 689

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

ln是linux中一个非常重要命令。它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是:  ln -s  源文件 目标文件    -s 是 symboli...
  • xiaohaijiejie
  • xiaohaijiejie
  • 2017年04月27日 21:34
  • 704

linux和win7下的软链接和硬链接

在开发过程当中,突然遇到一个问题,因前后台项目是分开的,导致后台上传的图片等在前台访问不到,后面发现可以使用软链接来实现。在这里记录一下 一、软链接和硬链接的基本介绍 硬连接指向的是节点(inode...
  • xxh_line
  • xxh_line
  • 2015年06月15日 17:22
  • 799

关于 Linux 下的文件硬链接,文件软链接

这是一个Linux 跟Windows 的区别,以后有空我会介绍一些这方面的区别……& 在Linux 有个链接的功能,命令是 ln,可以让两个文件或目录(目录只能是软连接)产生关联,或产生一个关联文件...
  • cnmm22
  • cnmm22
  • 2015年03月29日 13:40
  • 599

Linux命令ln、cp、硬链接和软链接

1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。 【硬连接】 硬连接指通过索引节点来进行连接。在Linux的...
  • yhhhyfyy
  • yhhhyfyy
  • 2014年03月11日 22:08
  • 3890
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux软连接和硬链接-实际操作一遍你就会懂!!!
举报原因:
原因补充:

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