Linux基础知识之软硬链接

系统环境:

   该博文以CentOS6.8_x86_64系统为基础,Xshell5远程登录CentOS6.8系统,以root身份登录系统。

为什么要学习符号(软)链接和硬链接?

   符号(软)链接和硬链接是Linux文件系统中的一个重要的概念,软硬链接的学习过程中会涉及一些文件系统中的索引节点(inode),索引节点是虚拟文件系统上的非常重要的知识,我们通过分析和学习软链接和硬链接的区别,可以更好利用软硬链接的知识去分析文件系统,更好的去理解Linux系统的原理,使用软硬链接会更加缩小系统,还有就是可以更加方便的去移值Linux系统(绝对路径和相对路径的使用会更加方便的进行系统的移值)。

   硬链接(Hard Link)的分析:

    课件的解析:blob.png

    硬链接的详细解析:

    硬链接是通过索引节点来进行连接文件的。在Linux系统之中,保存在磁盘分区中的文件都有一个单一的inode号(因为Linux一切皆文件,不管什么类型的文件,都会对应一个Linux的节点号,※磁盘上的每一个分区都会有一套自己的inode编号,等分析inode的博客会详细的讲解这些知识)。在Linux之中,多个文件名或单个文件名会通过单一的索引节点指向每一个单一的文件。硬链接的作用是允许一个文件拥有多个有效路径名,这样每一个用户都会将一些重要文件通过硬链接生成多个文件名,可以防止用户删除某一个文件名,而导致删除整个文件的链接关系被删除,导致文件被删除,建立链接的关系之后,删除单一的硬链接,文件系统的对应关系都不会被删除,只有当文件的最后一个硬链接被删除之后,文件才会被删除,这样简单的备份即不用另外使用太多另外的磁盘空间,而做到防止“误删”的功能。真正的文件删除的条件是与之相关的所有的硬件接文件均被删除,文件才会被删除,文件的数据块和目录的连接才会被释放。

   硬链接的语法和命令的使用实例:

        ln filename [linkname ]

   实例分析:

      a.创建一个文件名为f1的文件;
      b.将how are you? 通过输入重定向写入f1文件中;

      c.给f1文件创建一个名为f2的硬链接;

      d.使用ls -i 查看f1文件和f2文件的inode号,显示为同一个inode号(11);

      e.删除文件f1;

      f.查看f2中的内容,发现和f1中的内容相同,说明f1和f2互为相互的硬连接。

  blob.png

   符号(软)链接(Symbolic Link)的分析:

      课件的解析:

blob.png

    语法:

       ln -s filename [linkname]

    符号链接的详细解析:

             a.linux下的软链接类似于windows下的快捷方式

             b.假设b文件是a文件的软链接,当我们打开b文件实际通过b文件的链接指向的是a文件,确切的说我们最后打开的b文件是通过a文件的inode打开的文件。与此不同的是,b文件是a文件的硬链接的话,其实都是通过相同的inode打开文件。

              c.当b目录为a目录的软链接的时候,进入b目录,但实际上进入的是a目录。

              d.软连接的两个文件的inode号是不相同的,硬链接的两个inode号是相同的。

              e.软链接文件a和b的权限是不相同的,硬链接的a和b文件的权限是相同的。   

              f.当创建软连接时,a文件和它的软连接b不再同一目录时,一定要说明软链接b对于文件a的相对路径(相对路径是相对于软链接文件的路径,而不是现对于当前目录的路径),或者直接指明绝对路径。(※在真正的系统中,软链接多数使用的是指定的相对路径,而不是绝对路径,使用相对路径便于文件和链接文件的移值性※)

              g.默认创建软连接的时候,认为创建的链接文件和目标文件是在同一目录。

    符号(软)链接实例:

      a.新建文件f1,创建f1的软链接f2.(f1 f2 文件的inode号不同,f2 指向f1 文件)

      blob.png

      b.在root目录下创建文件f1,对文件f1分别在/testdir/目录下,利用下面三种方法创建软链接f1、f2、f3。我们可以发现,f1是错误的,f2、f3都是正确的,f2使用的是绝对路径的创建软链接(在本地系统使用无障碍,但是移值系统之后,可能会造成软链接无法使用),f3是使用的相对路径创建的软链接。(※相对路径是相对于软链接文件的路径,而不是现对于当前目录的路径※,增强文件跟随系统的移值性。)

      blob.png

原创文章,作者:sjsir,如若转载,请注明出处:http://www.178linux.com/26682

(0)
sjsirsjsir
上一篇 2016-08-02
下一篇 2016-08-02

相关推荐

  • 密码保护:ansible书籍部分目录

    无法提供摘要。这是一篇受保护的文章。

    Linux干货 2015-12-14
  • 8-8 处理文本工具sed及vim文本编辑工具

    处理文本工具sed及vim文本编辑工具 Sed:   sed是一种在线编辑器、行编辑器,一次处理一行内容。在处理时,把当前处理的行存储在临时缓冲区中,该缓冲区称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完毕后,把缓冲区的内容送到标准输出;然后紧接着处理下一行,重复完成相同的操作,直到文件末尾;sed处理的整个过程中,对象文件…

    Linux干货 2016-08-11
  • shell脚本2

    使用read命令来接受输入 使用read来把输入值分配给一个或多个shell变量 read后面跟变量,回车输入内容,就可以把输入的内容赋给变量 -p指定要显示的提示 -s 静默输入,一般用于密码 输入的内容不显示 -n N 指定输入的字符长度N 当输入的内容达到了5个字符会直接结束输入 -d‘字符’ 输入结束符 把!作为了结束符,在输入内容时,当输入!会直接…

    2017-08-11
  • 二维码的生成细节和原理

    二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下。供好学的人一同学习之。 关于QR Code…

    Linux干货 2016-08-15
  • 从Linux小白到大牛——与狼共舞的日子12(下)

    马哥教育网络班21期+第12周课程练习 5、为第4题中的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点; (1)要求使用证书认证,证书中要求使用的国家(CN)、州(HA)、城市(ZZ)和组织(MageEdu); (2)设置部门为Ops,主机名为www2.stuX.com,邮件为admin@stuX.com; 1.CA生成私…

    Linux干货 2016-12-26
  • 文本处理工具应用示例

    文本处理工具应用示例 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可 who|awk ‘{print $1}’|sort|uniq -d 2.取出最后登录到当前系统的用户的相关信息 who|tail -1|cut -d’ ‘ -f1|id 3.取出当前系统上被用户当作默认shell的最多的那个shell cat /e…

    Linux干货 2017-07-16