目录:
《》 链接文件
《》创建链接文件
《》软连接和硬链接区别
链接文件:
-
硬链接:一个inode对应多个文件名则为硬链接
- 不同的文件名对应相同的inode
- 文件内容相同
- 不能跨文件系统
- (其实就是给一个inode再起一个别名)
- 删除一个硬链接并不影响其他相同inode号的文件
- 只能给文件建立硬链接,不给目录建立硬链接
-
软连接:若文件用户数据块的内容是另一文件所在的路径则为软连接
- 一个文件名对应一个inode
- (在windows上叫做快捷方式)
- 可以跨文件系统
- 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接不正常,被称为死链接。
创建链接文件:
硬链接:(inode相同,文件内容相同)
[root@rhel1 ~]# ln a a.hard
[root@rhel1 ~]# ls -i
41156636 a 41156636 a.hard
41156610 install.log 41156621 mysql
[root@rhel1 ~]# cat a
1
[root@rhel1 ~]# cat a.hard
1
软链接:
(inode不同)
(如下图为正确的软连接)
软连接和硬链接区别
- 软链接:指向原始文件所在的路径,又称为符号链接
- 硬链接:指向原始文件对应的数据存储位置
- 不能为目录建立硬链接文件
- 硬链接与原始文件必须位于同一分区(文件系统)中
- 既可以给文件也可以给目录创建软链接
(如下图为不正确的软连接)
因为软链接指向原始文件所在的路径,相当于windows中的快捷方式,将它移动到/tmp目录下时,此时这个a在创建软链接时是在root目录下,在/tmp目录下不能通过这个路径找到相对应的inode的,不能找到其元数据及其数据块,所以找不到内容,软链接不正确。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
删除a对硬链接a.hard没有影响,
删除a对软链接a,link有影响。
解析:
对于硬链接,它 的数据块存放的其实就是inode,因为硬链接和原始文件具有相同的inode,相当于给原始文件的inode起别名,删除原始文件,对起了别名的文件(硬链接)没有影响。
而软连接,它的数据块存放原始文件的路径,删除原始文件,软链接就不能通过路径一层一层的找到对应的原始文件的inode,不能找到原始文件所对应的元数据,就找不到数据块,找不到其内容,所以这个软链接就不正常。