软链接与硬链接的区别

  这两牵扯到链接,那么先介绍以下链接。

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

 

例如用ls-l可以查看文件的详情:

软链接与硬链接的区别

在这文件中,绿色的3txt与2.txt构成了一个链接。在Linux中->就代表着链接。

硬链接:

   硬链接就相当于一个指针,指向文件的索引节点,系统并不会为他重新分配新的inode,但是没添加一个硬链接,文件链接数会加一。

   硬链接允许一个文件同时又多个路径名,用户只删除一个硬链接并不影响这个文件的inode与其他相连接,只有最后一个链接被删除后,这个文件的inode就释放,数据块就保持在空闲状态允许被写入。用这种硬链接可以有效的防止误删除。但是硬链接不能跨分区创建,不再同一个分区是无法直接与数据块的inode相连接。也不允许给目录创建硬链接。在创建硬链接时可以相对于当前路径去创建,每创建一个硬链接就会会增加额外的记录项以引用文件。硬链接也不会占用节点号,但会增加链接数。同一个文件无论创建多少个硬链接,他们的属性都是完全相同的,这相当于是一个物理文件的不同名字。就像我们人一样,一个人可以有多个名字,无论你叫什么名字,你还是你,你自己的属性是不会改变的,总不会换一个名字就瘦了几斤或者长高了吧。


语法:

                            ln  filename [linkname]

软链接:

    又被称作为符号链接。软链接我们可以理解为windowx的快捷方式,相信大家都用过吧。创建一个软链接其实就是创建一个特殊的文件,这个文件内容就是这个链接的信息。软链接文件的大小就是这个路径的大小。软链接就是一个位置的处理,跟硬链接有本质的区别。举个例子:当你对A创建一个软链接,然后把A文件删除了,那时这个链接并不会一起呗删除,只是失效了。当你再重新在原来的地方创建一个以A命名的文件,再使用原来这个软链接。你会发现,又连接进了新建的这个A文件里了。说明软链接并不指定文件,而是指定的位置,等于给这个位置创建了另一条路径。就相当于家房子的地址如果你搬家不住这了那么这个地址会不被你使用了,并不是这个地址就不存在了。当小明买了你家的房子住进去后,这个地址就会变为他们家的地址。所以软链接就是一个链接符,指向了一个地址而已。创建软链接后文件的链接数不会增长,不会增加目标inode的引用计数,因为只是指向一个地址,所以软链接不但可以连接目录而且还能跨分区进行连接。

语法:

       ln -s filename [linkname]

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

(0)
phosphorphosphor
上一篇 2017-05-25 09:16
下一篇 2017-05-25 10:49

相关推荐

  • rpm包管理

    linux程序包管理 RPM ================================================================== #ldd 查看二进制程序调用的动态链接库 #ldconfig  -p  显示本机已缓存的所有可用库文件     dll: Dynamic…

    Linux干货 2016-08-18
  • tomcat

    编程语言: 硬件级:微码编程,汇编语言 系统级:C,C++,… 应用级:Java, PHP, Python, Ruby, Perl, C#, … 程序:指令+数据 过程式编程:以指令为中心,数据服务于代码; 对象式编程:以数据为中心,指令服务于数据; java Java代码的运行:*.java(source code) –…

    Linux干货 2017-07-03
  • Linux的哲学理念

    1、由目的单一的小程序组成,通过使用者的组合形成一个能够完成复杂任务的应用程序 2、一切皆为文件 3、尽量避免捕获用户接口;也就是说Linux运行的程序大多数是不需要过多的反复输入/输出人机交互信息,运行程序命令,直接获得反馈的结果,是一种目的单一的程序 4、配置文件保存为纯文本格式

    Linux干货 2016-10-29
  • Jmeter性能测试 入门

    Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率。 熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadRunner了。 【小坦克Jmeter教程】,将会覆盖Jmeter的各个功能,并且会通过丰富的实例,让读者快速掌握Jmeter的各种用法 。 本文将通过一个实际的…

    Linux干货 2015-03-06
  • Linux基础之用户及组管理

    grep扩展应用,用户管理,组管理,用户及组管理命令

    2018-01-31
  • linux发行版介绍及其哲学思想

    Linux是一种自由和开源的unix-like操作系统。目前运用领域最广泛、使用人数最多的操作系统。该操作系统的内核是Linus Torvalds在1991年10月5日首次发布。是一个多任务,多用户的操作系统,广泛应用在服务器,手机,平板电脑,电视,电子游戏等领域,我们生活中随处都可以见到linux身影。 Linux诞生 1991 年,在芬兰,赫尔辛基大学的…

    2017-09-16