野梨子酒的酿制方法:软链接 硬链接 ln

来源:百度文库 编辑:中财网 时间:2024/05/09 06:47:34
ln
1.作用
ln命令用来在文件之间创建链接,它的使用权限是所有用户。
2.格式
ln [options] 源文件 [链接名]
3.参数
-f:链结时先将源文件删除。
-d:允许系统管理者硬链结自己的目录。
-s:进行软链结(Symbolic Link)。
-b:将在链结时会被覆盖或删除的文件进行备份。
链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。
与硬连接相对应,Lnux系统中还存在另一种连接,称为符号连接(Symbilc Link),也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
----------------------------------------------------------------------------------------------------------------------------------------------------利用符号链接快速访问关键目录
符号链接是一个非常实用的功能。假设有一些目录或文件需要频繁使用,但由于Linux的文件和目录结构等原因,这个文件或目录在很深的子目录中。比如,Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中,并且不想每次都要从主目录进入这样一个长的路径之中(实际上,这个路径也非常不容易记忆)。
为了解决这个问题,可以在主目录中创建一个符号链接,这样在需要进入该目录时,只需进入这个链接即可。
为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录,在主目录下可以使用以下命令:
$ ln -s /usr/local/httpd/htdocs gg
这样每次进入gg目录就可访问Web服务器的文档,以后如果不再访问Web服务器的文档时,删除gg即可,而真正的Web服务器的文档并没有删除。
----------------------------------------------------------------------------------------------------------------------------------------------------说明 : Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。
ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
----------------------------------------------------------------------------------------------------------------------------------------------------关于符号链接和硬链接的解释每个文件都是用inode(Information Node或者index node)来表示的,inode含有文件的全部信息,但我们不能直接访问inode。每个inode通过一个或几个硬连接跟文件系统关联,所以我们才能通过文件系统访问数据。硬连接包含文件名和inode number。而inode就是文件本身的位置、访问权限、文件类型等。只要有inode number,系统就能把它找到。
一个文件可以有不止一个硬连接,也就是说不同的文件名可以指向同一个文件。但不能存在跨越文件系统的硬连接:所有对同一inode的直接引用必需在同一文件系统上,如果对某一个文件建立硬连接(就是对这个inode再建一个硬连接),你删除这个文件的时候,其实只是删除了其中一个硬连接,还可以通过其他硬连接访问,直到你删掉了所有硬连接,系统才会删除该inode。
而符号连接或者叫软连接,是一种特殊文件,它指向已加载的文件系统的一个硬连接。符号连接可以跨越文件系统。
总的说来,硬连接是一个文件名和一个inode number;文件是一个inode;符号连接是一个inode,内容包括一个硬连接的名字。符号连接建立文件名到另一个文件名的对应关系;而硬连接建立文件名到inode的对应关系。
对符号连接的操作有时候会影响这个符号连接自己的inode(含有硬连接名字的那个inode)信息,有时候会影响它指向的那个硬连接的内容。
目录可以建立符号连接,但不能建立硬连接。每个目录在它的父目录中都有硬连接,用.表示,在它的所有子目录中都有它的硬连接,用..表示,但不允许有其它到目录的硬连接存在。
你只能向一个存在的文件建立硬连接,因为它必需指向一个有效的inode number,但可以建立指向任何文件名的符号连接,不论这个文件是否存在。
硬链接有两个局限。在这些情况下你必须使用软链接:
   1. 跨文件系统的链接
      因为硬链接是底层文件系统的直接引用,你不能跨文件系统建立硬链接。

   2. 链接到一个目录
      你不能用硬链接来链接到一个目录。在上述的两种情况中,你必须使用软链接,因为很简单,硬链接做不了这个室。在另外一些情况下,虽然硬链接也行,但软链接要比硬链接更好。比如,当你想要创建一个快捷方式,尤其是快捷方式的目标以后可能会改变的情况下,你很可能会选用软链接。举个例子,你有一个应用程序的beta版的启动器,你可能希望使用软链接,这样你就可以很容易地在各个版本之间改变目标。
在其他的大多数情况中(创建一个链接到同一个文件系统的文件时),硬链接应当是首选,基于以下原因:

   1. 性能
      使用硬链接可以得到少量的性能提升。这是由于硬链接是一个磁盘位置的引用而不是一个指向另一个文件的文件(指向你所需要的真实磁盘位置),硬链接所涉及到的磁盘寻道动作要少一次。

   2. 存储空间
      硬链接不占用额外的空间,因为它只是一个简单的指向已有磁盘空间的引用。而创建软链接是创建一个新文件,会消耗掉你文件系统上的少量空间(通常是4KB)。

      另外,硬链接更好的一个原因是软链接很容易丢失一个文件的‘主’实例(所有软链接指向的那个文件)。如果原始文件删除了,那么所有的软链接都将变成无效的。而使用硬链接的话,你可以删除任意一个实例,包括原始实例。只要还有一个实例存在,该文件就存在于系统中。
----------------------------------------------------------------------------------------------------------------------------------------------------
下面为实际的硬链接与软链接例子:lrwxrwxrwx 1 dshang-sh dshang-sh       6 Jan  3 10:57 11aaa -> 11aaa/软链接:一般文件与硬链接文件的区别