使用ln命令创建文件的链接
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
硬链接的原理就是多个文件名指向同一个inode,因此多个文件名共用一个inode号码,达到共享与备份的目的。
注意:源文件被删除,不影响硬链接文件的正常使用,操作如图
硬链接不能针对目录创建,如图
硬链接不能跨分区进行创建,如图
硬链接的特点:无法针对目录创建,跨分区无法实现。因为每个分区都有自己独立的indoe号码。
问:为什么刚创建的一个目录,链接数就是2?
答:新建一个空目录test,此目录的第二字段就是2(包含两个隐藏目录,因为每一个目录都有一个指向它本身的子目录“.”和指向它上级目录的子目录“..”),所以目录test是一个链接,隐藏目录是两个链接。
注意:如果源文件被删除,链接文件则失效.
能针对目录和跨分区创建软链接,能跨分区创建软链接(源文件必须写绝对路径),boot分区是一个独立的分区。
由于inode号码与文件名分离,这种机制导致了一些UNIX/Linux系统特有的现象。
(1)有些文件名包含特殊字符,无法正常删除。此时,直接删除inode节点,就能起到删除文件的作用。
(2)移动文件或重命名文件,只是改变文件名,不影响inode号码。
(3)打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。因此,通常来说,系统无法从inode号码得知文件名。问:为什么每次修改完服务器配置文件后,都需要重新加载一下配置文件?
问:为什么每次修改完服务器配置文件后,都需要重新加载一下配置文件?
答:因为vim每次修改完文件后,inode号都会变。
硬链接文件:每一个文件在磁盘上都有一个对应的inode,在一个文件系统中,不同路径的多个文件指向同一个inode,通过指向同一个inode的文件访问到的是同一个数据,这种多个文件指向同一个inode的不同路径的文件,称硬链接文件。
软链接文件:每一个文件在磁盘上都有一个对应的inode,当访问/ab/a.txt,根路径找到a.txt的目录条目,通过a.txt的目录条目找到了a.txt的对应inode,本来应该在inode条目里存储指向磁盘块编号的字段,但是此时并没有存储磁盘块的编号,而是存储了另外一个文件的路径名/cd/b.txt(字符串),然后还需要重新查找a.txt的inode中的文件路径名/cd/b.txt,当查找到b.txt的inode时,才能找到数据所在的磁盘块。
所以在a.txt文件的容量中显示的是inode中所存储的另一个文件路径名的字符数量,在访问软链接文件时,软链接文件本身的权限是不能决定最终被访问到数据文件的,因为软链接文件的权限为777,可以让所有用户都能找到软链接文件,但并不是每个用户都能访问到软链接文件所指向的最终要被访问到的文件。
硬链接特点如下:
(1)只能对文件创建,不能应用到目录,避免循环链接,但是目录的硬链接数为2,因为目录下的当前目录“.”的隐藏文件是和当前目录指向同一个inode的,这是文件系统自带的属性。
(2)不能跨文件系统(分区)。
(3)创建硬链接会增加文件被链接的次数。
软链接特点如下:
(1)可应用于目录。
(2)可跨文件系统。
(3)不会增加文件被链接的次数。
(4)大小为其指向的路径文件名的字符个数。