目录
一、软硬链接命令
二、特征
三、相关知识
一、软硬链接命令
ln -s target link_name
-s
:选项表示创建一个符号链接(软链接),如果没有-s就是硬链接target
:是要指向的目标文件或目录的路径。link_name
:是新建的软链接的名称或路径。
二、特征
软链接是一个独立的文件,因为有独立的inode
软链接的内容:目标文件对应的路径字符串,类似windows中的快捷方式
删掉目标文件,软连接就失去目标
软链接有什么用?
软链接相当于快捷方式
硬链接不是一个独立的文件,因为没有独立的inode,用的是目标文件的inode
硬链接就是一个文件名和inode的映射关系,建立硬链接,就是指定目录下,添加一个新的文件名和inode编号的映射关系
硬链接相当于重命名
属性中有一个叫做硬链接数:(标红部分)
也叫做文件的磁盘级引用计数:有多少个文件名字的字符串,通过inode编号指向inode
这个数字是几,就说明有几个文件名跟这个inode编号有映射关系
为什么目录的引用计数是2呢?
因为每一个目录都默认有两个东西:. 和 ..
. 表示当前路径,即重命名,所以对当前目录来说,引用计数是2
.. 表示上级目录
所以,任何目录新建时,引用计数都是2
而如果在空目录下又新建一个目录
那么当前目录的引用计数+1,变成3
为什么?
因为新建目录下的..也指向当前目录
所以,对于该目录来说,有三个文件名指向inode
所以,引用计数为3
所以,根据上述,我们可以知道:
一个目录下的目录文件数 = 引用计数 - 2
这个2指向的是其本身和.
三、相关知识
Linux中不允许给目录设置硬链接
为什么?
假设一个目录下,设置了一个硬链接A,指向该目录上级的目录
例如根目录
此时,如果我要访问文件A,就会发生循环绕圈,造成路径环绕
硬链接还可以做文件备份
软硬连接的本质区别就是:有没有inode