硬链接与软链接的区别

硬链接与软连接

      

        本文仅用于个人学习参考:

        简单介绍了硬链接与软连接的区别。

        硬链接

        关于硬链接,也就是是说硬盘当中有个文件,在这个文件最初创建的时候有个文件名,由于各种原因,比如说原路径比较难打,我们又创建了一个硬连,放在比较容易找到的位置。

        这一点本人的理解为:来到马哥基地这里有两个大门,左边一个能进来,右边那个也是没问题的,只是左右名字不同罢了。

        硬链接命令语法:

        ln  filename [linkname]

                   filename: [创建出的链接名 ]:

                  linkname:需要被链接的文件

             

        硬链接特点:

        如上边所说,马哥都是同一位马哥,只是称呼不同。

    ]# touch 11.22           /*首先创建一个文件*/
    ]# ln 11.22 22.11        /*然后为该文件创建一个硬链接*/ 
    ]# ls -l                           /*对比原文件与链接文件*/
        total 0
        -rw-r--r-- 2 root root  0 Oct 20 10:28 11.22
        -rw-r--r-- 2 root root  0 Oct 20 10:28 22.11
        drwxr-xr-x 5 root root 31 Oct 20 10:17 kai
  •         在这个图片中可以清楚的看到,原来的文件与我们使用 ln(硬链接)命令创建出来的数据块(硬链接并不生成文件,下边内容为了容易称呼,我说成硬链接文件)除了文件名,其余都是一模一样的。

  •         硬链接只能在同一分区内创建。硬链接不能针对与目录使用。

            与cp的文件相似,不过硬链接文件可以同步更新,就算源文件丢失,硬链接也能访问。

  •         当然,如果源文件与链接文件同时被删除,那么该文件就彻底没了。

 

        软连接

        软连接相当于windows的快捷方式,当源文件丢失,那么快捷方式也会失去作用。

        
        软连接命令语法:

            ln -s filename [linkname]

                               filename: [创建出的链接名 ]:

                              linkname:需要被链接的文件

        软连接特点:

    软链接的须相对路径设定必指定的是针对与目标文件的相对路径,相对路径可以防止源文件地址的改变。

# ln -s ../home/hua/ hua.1

# ls -l
lrwxrwxrwx  1 root root       12 Oct 20 11:29 hua.1 -> ../home/hua/

   

        软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。

        因此软链接的创建与使用没有类似硬链接的诸多限制:

  •  软链接有自己的文件属性及权限等;

  • 可对不存在的文件或目录创建软链接;

  • 软链接可交叉文件系统;

  • 软链接可对文件或目录创建;

  • 创建软链接时,链接计数 i_nlink 不会增加;

  • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)

        如上所说如果软连接的原文件被删除,那么相关链接就会死链。

    死链.png

         当然软链接的用户数据也可以是另一个软链接的路径,其解析过程是递归的。但需注意:软链接创建时原文件的路径指向使用相对路径较好。硬链接创建的时候可以指定绝对路径、相对路径,或者直接就不指定了,因为硬链接创建完成之后,就相当于与原文件断绝了关系,原文件位置的改变并不会影响到硬链接。

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

(0)
lyly
上一篇 2016-10-20 11:50
下一篇 2016-10-20 13:09

相关推荐

  • shell脚本4——特殊循环和函数

    循环的特殊用法: 1、while循环的特殊用法之遍历文件的每一行 while read line; do     循环体 done < /PATH/FROM/SOMEFILE 依次读取/PATH/FROM/SOMEFILE文件中的每一行,将每一行赋值给变量line…

    Linux干货 2016-08-21
  • 软链接与硬链接的区别

      这两牵扯到链接,那么先介绍以下链接。   在文件系统中,有一种可以把不同的文件相连接到一起的机制,这个机制叫做链接。通俗的话来说就是打开两个不同的文件夹,其实进去的是同一个。它可以把一个文件用不同的名字和路径来表示出来。系统通过inode(索引节点,文件唯一标识)来识别是否为同一个文件,无论系统上有有多少个链接,在磁盘上只有一个唯一的…

    2017-05-25
  • 学习宣言

      人生还有很多精彩时刻,需要你去探寻,linux 就是这个深渊的入口,我其实已迫不及待,伙伴们别怕,跟我来,一路披荆斩棘,踏寻生命的足迹!Fighting!

    Linux干货 2016-10-25
  • 数据结构-线性表

    1. 线性表:n个数据元素的有序集合。 线性表是一种常用的数据结构。在实际应用中,线性表都是以栈、队列、字符串、数组等特殊线性表的形式来使用的。由于这些特殊线性表都具有各自的特性,因此,掌握这些特殊线性表的特性,对于数据运算的可靠性和提高操作效率都是至关重要的。  线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,有且仅有一个开始结点…

    Linux干货 2015-04-07
  • vim浅谈

            在Linux的世界里,绝大部分的配置文件都是以ASCII的纯文本形式存在的,所以作为一名优秀的Geek,熟练掌握一种文本编辑辑器是非常重要的。         Linux世界中的文本编辑器有很多…

    Linux干货 2015-04-27
  • Nginx反向代理https,提供PhpMyAdmin

    准备工作:主机1、双网卡:外–172.16.252.187  内–192.168.42.140 主机2:192.168.42. 145 主机3:172.16.251.112 主机4:192.168.42.141 在主机2上:     安装httpd  yum  install…

    2017-07-01