【Linux系列教程】03.链接命令--软连接和硬链接的区别

原创 2016年06月01日 16:20:57

    首先,很抱歉。今天着实忙的不行,现在才闲下来,今天只能写一个这个了,十分抱歉!如果有错,尽请纠正!谢谢支持!



链接命令:ln

命令格式:ln -s [源文件] [目标文件]

英文含义:link

功能描述:为某一个文件在另外一个位置建立一个不同的链接文件

选项:-s 创建软连接,不加选项则为硬链接


-s 是代号(symbolic)的意思。


硬链接的特征:


        1、拥有相同的 i 节点和存储block块,可以看做同一个文件。


解释:之前我们说过每个文件都有属于自己的 i 节点,类似于ID号。硬盘分区会有一个文件索引列表以及一个数据分区。用户查找文件以后,会先进入到文件索引(文件索引至少包含 i 节点、时间、存储位置)内获取到存储位置,再根据位置去数据分区找到对应的block块,组合成数据返回。硬链接的话,链接文件和原文件都会对应同一个 i 节点和一样的存储数据块。这个概念和PHP里面的引用变量类似。也就是说,原文件和硬链接二者其中任何一个改变了另外一个也会改变,但是,如果其中一个被删除了另一个并不会被删除。这就相当于一个房间有二个门,我们关了一个门这个房间还是可以进入,房间里面什么东西变了不管你从哪个门,哪怕是从窗子进去那房间里面的东西都是一样的。


        2、可通过 i 节点识别


解释:上面第一条说了是有一样的 i 节点的。所以如果两个文件 i 节点一样,那二者肯定有一个是原文件,一个是硬链接。


        3、不能跨分区


解释:二个文件只能在同一个分区,这个应该是很好理解的吧?


        4、不能针对目录


解释:硬链接只能给单个文件做链接,对目录无效。也可以理解成一个文件的二个入口。


软链接的特征:


        1、类似于Windows的快捷方式。


解释:总的来说,链接的作用其实就是为了方便用户去进入某个目录或者是打开某个文件。


        2、软链接拥有自己的 i 节点和block块,但是对应的数据块中只保存了原文件的 i 节点和文件名等,并没有原文件的数据。


解释:刚才说过硬链接是和原文件共用同一个文件索引的。而软链接则不是,软链接有自己的文件索引,自己的 i 节点和数据块。当用户去搜索文件的时候,先是获取到软链接的文件索引,再根据存储目录去数据块中取得数据,这个数据包含原文件的信息。再根据信息中的存储位置去获取到原文件的数据从而再返回给用户。这就相当于一个传送门,每个软链接都是帮你快捷的传送到某个很远的地方去。


        3、软链接的权限都为lrwxrwxrwx。


解释:软链接各类用户都可以去读写。但是要注意的是,软链接的权限和原文件的权限是二码事儿。这就相当于把你传送过去了,但是面前还有一道门,然而你可能并没有带钥匙或者是带了钥匙。


        4、修改其中一个另外一个也会改变


解释:软链接这块是和硬链接一样的。这时候软链接就像一个快递员,你给他,他帮你送到你家。没有权限他就送不进去,有权限他就直接帮你放进去了。

        5、删除原文件以后软链接不能使用

解释:原文件都没有了传送门给你送哪去?宇宙?还是海底?

版权声明:本文为博主原创文章,除了文章中有说明以外,可以随意转载,标明出处即可

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

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

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

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

软连接与硬链接的区别

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

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

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

学习笔记-unix软链接和硬链接的区别

在弄清楚这个问题之前我们要搞明白unix
  • caoyan_12727
  • caoyan_12727
  • 2016年09月02日 15:38
  • 1092

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

1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。 【硬连接】 硬连接指通过索引节点来进行连接。在Linux的...
  • yhhhyfyy
  • yhhhyfyy
  • 2014年03月11日 22:08
  • 3887

Linux下链接文件的区别——软链接和硬链接

博客搬家了,最近同时更新,没准什么时候就完全搬走了-_- http://blog.just66.cn0X00 什么是链接文件Linux中的链接文件就相当于是Windows中的快捷方式,通过链接文件可以...
  • mouse_ts
  • mouse_ts
  • 2016年05月11日 16:59
  • 1241

Windows下硬链接、软链接和快捷方式的区别

mklink是windows系统下创建符号链接和硬链接的命令工具,它是一个很好的解决文件系统问题的工具。使用它需要管理员权限。 首先,先来介绍下mklink这个命令,可以看下面的截图: 说明也...
  • yanying861212
  • yanying861212
  • 2016年08月16日 14:09
  • 662

Linux中的硬链接和软链接

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

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

软连接跟硬链接最大的区别在于: 1.文件A和文件B的inode号码一样,对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard ...
  • daiyudong2020
  • daiyudong2020
  • 2016年08月02日 18:18
  • 1046
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Linux系列教程】03.链接命令--软连接和硬链接的区别
举报原因:
原因补充:

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