haibaraxx的个人博客分享 http://blog.sciencenet.cn/u/haibaraxx

博文

Linux:文件的符号链接和硬链接

已有 3023 次阅读 2017-9-6 17:10 |个人分类:Linux|系统分类:科研笔记| 符号链接, 硬链接

参考:中国大学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



https://wap.sciencenet.cn/blog-3031432-1074556.html

上一篇:Linux:拷贝、移动、删除、创建文件
下一篇:Linux:打包和压缩文件
收藏 IP: 134.1.1.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-1 14:43

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部