linux的硬链接与软链接
1. 理解链接文件是怎样的?
链接文件分为:硬链接和符号链接
硬链接使用的原理:inode与内容有关,文件名与它所在目录有关,所以不同文件名可以指向同一个inode号码,这就是硬链接,如下:
我在/home/kanhuigai创建一个文件test1,然后在/home/kanhuigai2/下面创建一个硬链接文件test2,

可以看到我创建的文件teset1的节点为1,默认所有的文件节点数都为1.
然后创建硬链接,

其实硬链接创建以后,是不区分谁是谁的硬链接,创建好以后,这就是相互的,test1是test2的硬链接,test2也是test1的硬链接。
查看一下test1和test2有什么不同吧?

发现他们的属性都是相同的,inode号码,权限,属主属组,节点数都为2,如再创建一个,看一下会怎样?

会发现节点数变为3,说明有三个文件使用同一个inode号码.
修改test1以后,test2和test3会怎样呢?

查看发现三个文件的内容是一样的,修改其中一个,另外两个都会发生变化。
删掉test1,另外两个会怎样?

可以看到另外两个毫无变化,所以说硬链接删除其中一个,其他不会受到影响。
硬链接使用受限:
l 必须得在同一个文件系统下,否则会有报错,如下:

可以看到创建硬链接的时候,显示无效的穿越设备连接。
l 硬链接只能建立在文件与文件之间,而不能是目录,如下:

2. 符号链接
使用独立的inode,只是做了一个指向而已,一旦源文件被删除,链接文件就不会被打开了。
ln -s

可以看到test2的属性发生了变化,文件类型为l,inode号码是自己的,权限也不同,符号连接就要区别源文件了,带有l就是链接文件,也可以看到链接文件指向了源文件test1.
如果再为test1创建一个符号连接文件呢?会有什么变化?

没有什么变化。
符号链接是否可以为目录建立呢?

可以创建.

浙公网安备 33010602011771号