|||
参考:中国大学MOOC课程《Linux系统管理》,授课教师:颜晨阳。
推荐阅读: t.cn/RLXkhpc
1 符号(symbolic)链接
与Windows的快捷方式很像,这些文件很小,仅提供指向实际文件的通道。
创建符号链接,使用ln (link)命令:$ ln -s [链接指向的文件][链接名]
第一个参数:源文件,即链接指向的文件
第二个参数:要创建的链接文件名
可以通过符号链接文件来读、写和执行文件,但符号链接文件与源文件是完全不同的两个文件,二者的属性不同。符号链接应用灵活,可以为任意文件创建符号链接。
2 硬链接
2.1 文件存储方式
在Linux中,当划分磁盘分区并格式化时,整个分区会被划分为2部分,即Inode区和Data Block区。inode是index node的缩写,即索引节点。Linux的每个文件都被分成2部分存放:文件的唯一标识——inode-number和属性信息,放在Inode区的一个inode中,inode-number和inode是一一对应的;文件的实际数据放在Data Block区中。需要通过文件的inode来找到存放文件数据的data block。
在一个硬盘分区中,不可能有两个文件共用一个inode,因此两个文件的inode-number不可能是一样的。查看文件的inode-number:\$ ls -i
第一个属性就是inode-number。如果将硬盘分区中所有的文件比作一本书,inode区就是其目录,Data Block区就是其内容,我们必须通过目录来找到具体内容。
Linux中目录是一张表,每个表项都代表了一个文件,目录中有多少文件,这张表中就有多少表项。
每个表项包含了两样数据:一是文件名,二是文件的inode-number。因此,Linux中存取文件的过程就是,通过文件名找到对应的inode-number,然后找到文件的inode,最后找到文件的数据。
2.2 硬链接
在目录中让inode-number对应多个文件名,文件inode和数据还是一份(同一个文件),只是文件多出来一个名字,这个名字被称为硬链接。
创建硬链接:\$ ln [链接指向的文件][链接名]
删除源文件后,相当于删除了一个文件名,文件数据还可以通过其他文件名(硬链接)进行访问。
注意
1)不建议为目录创建硬链接,容易造成目录遍历死循环。详见 c2.com/cgi/wiki?HardLink
2)不能跨硬盘分区创建硬链接。因为在不同的硬盘分区中,文件的inode-number不唯一。详见 t.cn/RLXkhpc
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-23 07:20
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社