(008) Linux命令之ln

十年运维系列之基础篇 - Linux

作者:曾林 

联系:1494445739@qq.com

网站:www.jplatformx.com

版权:文章未经同意请勿转载


一、引言

      ln命令可用来创建硬链接或者是符号链接。它的使用方式有两种:

      ln file link

      用来创建硬链接,而

      ln -s item link

      用来创建符号链接,这里的item可以是文件,也可以是目录。

 

二、硬链接

      硬链接是最初Unix用来创建链接的方式,用来定位文件的位置的,而符号链接较之更为先进。默认情况下,每个文件有一个硬链接,该硬链接会给文件起名字。当创建一个硬链接的时候,也为这个文件创建了一个额外的目录条目。硬链接有两个重要的局限性。

  • 硬链接不能引用自身文件系统之外的文件。也就是说,链接不能引用与该链接不在同一个磁盘分区的文件。
  • 硬链接无法引用目录。

      硬链接和文件本身没有什么区别。与包含符号链接的目录列表不同,包含硬链接的目录列表没有特别的链接指示说明。当硬链接被删除时,只是删除了这个链接,但是文件本身的内容依然存在(也就是说,该空间没有被释放),除非该文件的所有链接都被删除了。

      说得再直白一点就是当我们提到硬链接时,可以想象文件是由两部分组成的,即包含文件内容的数据部分和包含文件名的名称部分。创建硬链接时,实际上是创建了额外的名称(也就是创建了一个别名),这些名称都指向同一数据部分。系统分配了一系列的block给所谓的索引节点(inode),该节点随后就与文件名称部分建立关联。因此,每个硬链接都指向包含文件内容的具体索引节点。

 

三、符号链接(软链接)

      符号链接是为了克服硬链接的局限性而创建的。符号链接是通过创建一个特殊类型的文件来起作用的,该文件包含了指向引用文件或目录的文件指针。就这点来看,符号链接与windows系统下的快捷方式非常相似,但是符号链接(软链接)要早于windows的快捷方式很多年。

      符号链接指向的文件与符号链接自身几乎没有什么区别。例如,将一些东西写进符号链接里,那么这些东西也同样写进了被引用的文件中。而当删除一个符号链接的时候,那么删除的只是符号链接而没有删除文件本身。如果先于符号链接之前删除文件,那么这个链接依旧存在,但却不再指向任何文件。此时,这个链接就成为坏链接。

 

posted @ 2015-02-19 22:42  jplatformx  阅读(184)  评论(0编辑  收藏  举报