1、连接文件简介
Linux有两种连接文件:符号连接(软连接)和硬连接,符号连接类似Windows下的快捷方式,硬连接通过文件系统的inode连接来产生新文件名,而不是产生新文件。
inode:记录文件属性,一个文件一个inode。ionde相当于文件ID,查找文件的时候要先找到inode,然后才能读出文件的内容。
硬连接相关知识:
(1)硬连接是多个文件都指向同一个inode
(2)具有相同inode的多个文件互为硬连接文件,创建硬连接相当于文件实体多了入口。
(3)对于硬连接文件,只有删除了源文件以及对应的所有硬连接文件,文件实体才会被删除。
(4)根据硬连接文件的特点,我们可以通过给文件创建硬连接的方式来防止文件误删除。
(5)不论修改源文件还是连接文件,另一个文件的数据都会被修改。
(6)硬连接不能快文件系统
(7)硬连接不能连接到目录
软连接相关知识:
(1)可以连接到目录
(2)可以跨文件系统
(3)删除源文件以后,软连接文件也就打不开了
(4)符号连接文件通过->来指示具体的连接文件
(5)符号连接要使用绝对路径,否则会有问题
2、创建连接文件:ln [选项] 源文件 目标文件
选项:-s 创建符号连接(软连接);
-f 强制创建连接文件,如果目标存在,那么先删除目标文件,然后再建立连接文件;
如图可以看出: ln a.c b.c 创建了一个硬连接,b.c的文件类型依然为“文件”,但是a.c与b.c的文件结点是一样的,所以b.c只是a.c的另一个名字,他们指向的实际文件是相同的。
ln -s a.c c.c 创建了一个软连接,c.c的文件类型为“l”,连接文件,它的文件结点与a.c是不一样的。
3、 为什么符号连接要用绝对路径?
如上图:创建两个软连接文件hello1与hello2,其中创建hello1时没有使用绝对路径,创建hello2时使用了绝对路径,同时将hello1与hello2复制到test目录中,复制后hello1连接失效,找不到文件,而hello2软连接文件依然正常。