这是linux中一个十分重要命令,请你们一定要熟悉。它的功能是为某一个文件在另外一个位置构建一个同不的链接,这个命令最常用的参数是-s,
具体用法是:ln-s源文件目标文件。
当我们须要在不同的目录,用到相同的文件时,我们不须要在每一个须要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,之后在其它的目录下用ln命令链接(link)它就可以,何必重复的占用c盘空间。诸如:ln-s/bin/less/usr/local/bin/less
-s是代号(symbolic)的意思。
这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件就会发生相同的变化;第二,ln的链接又软链接和硬链接两种linux系统安装,软链接就是ln-s****,它只会在你选取的位置上生成一个文件的镜像,不会占用c盘空间,硬链接ln****,没有参数-s,它会在你选取的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
不论是硬联结或软链结都不会将原先的档案复制一份red hat linux下载,只会占用十分少量的硬碟空间。
-f:链结时先将与dist同档名的档案删掉
-d:容许系统管理者硬链结自己的目录
-i:在删掉与dist同档名的档案时先进行寻问
-n:在进行软联结时,将dist视为通常的档案
-s:进行软链结(symboliclink)
-v:在联结之前显示其档名
-b:将在链结时会被覆写或删掉的档案进行备份
-SSUFFIX:将备份的档案都加上SUFFIX的字尾
-VMETHOD:指定备份的方法
--help:显示辅助说明
--version:显示版本
【硬联接】
硬联接指通过索引节点来进行联接。在Linux的文件系统中,保存在c盘分区中的文件不管是哪些类型都给它分配一个编号,称为索引节点号(InodeIndex)。在Linux中,多个文件名指向同一索引节点是存在的。通常这些联接就是硬联接。硬联接的作用是容许一个文件拥有多个有效路径名,这样用户就可以构建硬联接到重要文件,以避免“误删”的功能。其缘由如上所述,由于对应当目录的索引节点有一个以上的联接。只删掉一个联接并不影响索引节点本身和其它的联接,只有当最后一个联接被删掉后,文件的数据块及目录的联接就会被释放。也就是说,文件真正删掉的条件是与之相关的所有硬联接文件均被删掉。
【软联接】
另外一种联接称之为符号联接(SymbolicLink),也叫软联接。软链接文件有类似于Windows的快捷方法。它实际上是一个特殊的文件。在符号联接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
2.通过实验加深理解
[oracle@Linux]$vitest.log#创建一个测试文件f1
[oracle@Linux]$lntest.logtest1.log#创建f1的一个硬联接文件test1.log
[oracle@Linux]$ln-stest.logtest2.log#创建f1的一个符号联接文件test2.log
[oracle@Linux]$ls-li#-i参数显示文件的inode节点信息
两种链接的区别:
硬链接文件有两个限制
1)、不准许给目录创建硬链接;
2)、只有在同一文件系统中的文件之间能够创建链接,但是只有超级用户才有完善硬链接权限。
对硬链接文件进行读写和删掉操作时侯,结果和软链接相同。但若果我们删掉硬链接文件的源文件inode linux中的使用,硬链接文件依然存在,但是保留了愿有的内容。
这时,系统就“忘记”了它以前是硬链接文件。而把他当作一个普通文件。
这么我们就可以这样理解:硬联接指通过索引节点来进行的联接,其作用是容许一个文件拥有多个有效路径名,才能达到误删掉的作用。
其缘由是由于对应的文件的索引节点有一个以上的联接。只删掉一个联接并不影响索引节点本身和其它
的联接,只有当最后一个联接被删掉后,文件的数据块及目录的联接就会被释放。文件才能被真正删掉。
注:保存在c盘分区中的文件不管是哪些类型都给它分配一个编号,称为索引节点号(InodeIndex即I节点)。
软链接没有硬链接以上的两个限制,因此现今更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网路对文件进行链接。并且软链接的缺点在于:由于链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件inode linux中的使用,系统就找不到了,而硬链接就没有这个缺陷,你想怎样移就如何移;还有它要系统分配额外的空间用于构建新的索引节点和保存原文件的路径。