Shell程序员

liunx之ln命令 链接

2018-07-21  本文已影响19人  D6K

ln是一个非常有用而且重要的命令。当我们需要在不同的目录用到相同的文件时,并不需要在每一个需要的目录下都放一个必须相同的文件,而只要在某个固定的目录放上该文件,然后在其它目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

用法:

选项

默认创建的链接是硬链接,硬链接通常不用于目录,不能跨文件系统。
如果只指定一个参数,则该参数为source,当前目录为target。
如果指定两个以上参数,则最后一个参数为target。
如果为命令或应用程序建立链接,则不能使用目录作为source。

补充说明:

  1. ln命令会保持每一处链接文件的同步性,也就是不论你改动了哪一处,其它的文件都会发生相同的变化;
  2. ln的链接又软链接和硬链接两种,软链接只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,而硬链接会在你选定的位置上生成一个和源文件大小相同的文件;
  3. 无论是软链接还是硬链接,文件都保持同步变化。
  4. 不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

【软连接】另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

软链接与硬链接的区别:
硬链接文件有两个限制
1)、不允许给目录创建硬链接;
2)、只有在同一文件系统中的文件之间才能创建链接,而且只有超级用户才有建立硬链接权限。
对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容。这主要是因为硬连接指通过索引节点来进行的连接,其作用是允许一个文件拥有多个有效路径名,能够达到误删除的作用。其原因是因为对应的文件的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放,这时文件才会被真正删除。
软链接没有硬链接以上的两个限制,因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。但是软链接的缺点在于:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

上一篇下一篇

猜你喜欢

热点阅读