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

相关推荐

  • 网络管理

    一、网络概念     什么是网络     资源共享的功能和优点         数据和应用程序         资源 &…

    Linux干货 2016-09-09
  • corosync+pacemaker+drbd+mysql来实现mysql的高可用和数据的同步

    实现拓扑图: 实验流程: 先对两主机安装上corosync和pacemaker 两主机安装drbd服务,并且设置好drbd的组设备 选择drbd主节点上,进行数据库的初始化 进行资源的定义和配置 测试 实验前,我们还需要做一些准备工作: 1、时间必须保持同步   使用ntp服务器 2、节点必须名称互相通信    解析节点名称 &…

    Linux干货 2015-11-10
  • shell脚本编程之函数

      在编写脚本时经常会遇到某个任务需要重复使用的问题,需每次都要输入同样的代码是件挺烦人的事情,还好可以通过编写函数还简化这项工作。   函数其实就是给一段代码起个名字,在每次使用这段代码的时候可以直接使用函数名来调用就可以了。 一、创建函数   创建函数的格式有两种:   格式1:function 函数名{ &nbs…

    Linux干货 2016-01-05
  • N22-冥界之王-第7周作业

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;       在虚拟机里新添加一块磁盘20G,/dev/sdb     &…

    Linux干货 2016-09-26
  • N25-第12周博客作业

    1、请描述一次完整的http请求处理过程;   1)客户端和服务器端建立连接。服务器接收或者拒绝请求。   2)服务器端接收客户端请求。接收来自于网络的请求报文中对某资源的一次请求。对请求的处理响应,可分为单进程(启动一个进程处理请求,一次只处理一个)和多进程(并行启动多个进程,每个进程处理一个请求)。  &…

    Linux干货 2017-05-21
  • MairaDB之基于openssl的主从复制

    一、配置openssl   1、   在master server(node0)上根CA的搭建(及生成自签名证书) [root@node0 ~]# cd /etc/pki/CA/ [root@node0 CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048) Gen…

    2016-11-19