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