一、ln命令概述
它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
二、硬链接和软链接的区别
硬链接:是通过文件系统的inode连接来产生新的文件名,而不是产生新文件
软链接:类似Windows的快捷方式功能的文件,可以让你快速连接到目标文件(或目录)
三、硬链接
语法:ln filename [linkname]
1、创建硬链接会增加额外的记录项以引用文件
2、对应于同一文件系统上一个物理文件
3、每个目录引用相同的inode号
4、创建时链接数递增(链接数相当于一个文件有好几个名字)
例如:
3表示的是链接数,说明a的文件名字有三个a,b,c
5、删除文件时:
rm命令递减计数的链接
文件要存在,至少有一个链接数
当链接数为零时,该文件被删除
例如:
把a删除之后b的链接数就少了一个,变成了2,此时名字就只有b和c了
6、不能跨越驱动器或分区
在同一个分区不同的目录是可以创建硬链接的,但是不同分区就不能创建
7、目录不能建立硬链接,但是目录的节点号会变化
例如:
因为.表示当前目录,所以/bin的节点号为2
创建一个文件夹,节点数加一,这是因为文件夹下面有个父目录”..“
需要注意的是:
在centos6中节点数为2的为独立分区,节点数为1的是虚拟目录
在centos7中如果是分区的根尽量放在128中
四、软链接
语法:ln -s filename [linkname]
1、一个符号链接指向另一个文件
2、ls -l的显示链接的名称和引用的文件
3、一个符号链接的内容是它引用文件的名称
4、可以对目录进行
例如:
5、可以跨分区
软连接没有指定相对路径或者绝对路径的时候会报错,他们会认为你的链接文件和你的源文件 是在同一个目录下面,在软连接中一般都是采用相对路径
6、ls –s原始文件软链接
原始文件相对路径:相对的是软链接文件路径,而不是相对于当前工作目录的路径
7、指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件 inode 的引用计数;
五、总结
使用ln如果不加任何参数的话,那么就是hard link。而如果使用-s参数时,就做成差不多是Windows下面的快捷方式的意思,当你修改linux下的symbolic link文件时,则改动的其实是“源文件”,所以无论你的这个源文件被连接到哪里去,只要你修改了连接文件,源文件就跟着变了。