- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析Linux下的链接文件.doc
浅析Linux下的链接文件
【摘 要】Linux在其文件系统中引入了链接文件用于方便用户使用和系统管理。本文对Linux下的链接文件的实质、分类、用途进行了分析和综述。
【关键词】Linux;链接文件
0 引言
链接文件在Linux的文件系统中扮演重要角色,而其背后又涉及到索引节点(index node,又称inode)这一概念。索引节点是Linux虚拟文件系统(VFS)的基本概念之一。通过剖析链接文件的实质,理解链接文件的分类与区别,可以让Linux的普通用户和管理员正确而有效的使用链接文件。
1 几个基本概念
要理解Linux下链接文件的实质,需要先理解索引节点(inode)和目录项(dentry)这两个基本概念。
在Linux文件系统中,一个文件除了纯数据本身之外,还必须包含有对这些纯数据的管理信息,如访问权限、文件的属主以及该文件的数据所对应的磁盘块等等,这些管理信息称之为元数据(mata data),保存在文件的inode节点之中。[1]
每个inode都有一个全文件系统唯一的inode号,操作系统内核正是通过inode号而非文件名来识别不同的文件。文件名仅仅是为了方便用户使用而已,内核是通过文件名找到inode,然后通过inode访问实际文件数据的。
虽然每个文件对应了唯一的inode号,但inode号是杂乱而毫无意义的,不方面用户记忆和使用,用户希望对每个文件取一个有意义的文件名。现代文件系统提供的一个基本功能是按名存取,所以还需要建立文件名到inode号的对应,这就引出了目录项(directory entry即dentry)的概念。在Linux文件系统中有一类特殊的文件称为“目录”,目录就保存了该目录下所有文件的文件名到inode号的对应关系,这里的每个对应关系就称为一个dentry。而Linux把所有的文件和目录构建成了一个倒立的树状结构,这样,只要确定了根目录的inode号,就可以对整个文件系统进行按名存取了。
2 链接文件的分类
Linux下的链接文件可以分为硬链接和软链接。
硬链接的实质是现有文件在目录树中的另一个入口。也就是说,硬链接与原文件是分居于不同或相同目录下的的dentry而已,它们指向同一个inode,对应于相同的磁盘数据块(data block),具有相同的访问权限、属性等。[2]简而言之,硬链接其实就是给现有的文件起了一个别名。如果把文件系统比喻成一本书的话,硬链接就是在书本的目录中,有两个目录项指向了同一页码的同一章节。
硬链接的优点是几乎不占磁盘空间(因为仅仅是增加了一个目录项而已),但是这一优点相对于软链接其实并不明显(因为软链接占用的磁盘空间也很少)。另外,硬链接有以下一些局限:1)不能跨文件系统创建硬链接。原因很简单,inode号只有在一个文件系统内才能保证是唯一的,如果跨越文件系统则inode号就可能重复。2)不能对目录创建硬链接。原因我在稍后解释。正因为硬链接的这些局限,加之软链接更加易于管理,所以软链接更加常用。
软链接又称为符号链接(symbolic link),简写为“symlink”。与硬链接仅仅是一个目录项不同,软连接实质上本身也是个文件,不过这个文件的内容是另一个文件名的指针。当Linux访问软链接时,它会循着指针找出含有实际数据的目标文件。同样用书本来打个比方,软链接是书本里的某一章节,不过这一章节什么内容都没有,只有一行字“转某某章某某页”。
3 两种链接文件的区别
软链接可以跨越文件系统指向另一个分区的文件,甚至可以跨越主机指向远程主机的一个文件,也可以指向目录。当创建了一个软链接文件后,它的权限为777,即所有权限都是开放的,实际上你也无法使用chmod命令修改其权限,但是实际文件的保护权限仍然起作用。
软链接还可以指向不存在的文件(可能是原来指向的文件被删除了,或者指向的文件系统尚未挂载,或者最初建立该符号链接的时候就指向了一个不存在的文件等等),此时称这种状态为“断裂”(broken)。与之相对的是,硬链接是不能指向一个不存在的文件的。
另外,在Linux上创建一个指向目录的软链接是允许的,但是却不能创建一个指向目录的硬链接。其实在UNIX操作系统的历史上,对目录创建硬链接曾经是允许的。但人们发现,这样做会出现很多问题,尤其是一些对目录树进行遍历操作的如fsck、find等命令无法正确执行。在《Unix高级环境编程》中提到作者Steven在自己的系统上做过实验,结果是:创建目录硬链接后,文件系统变得错误百出。因为这样做会破坏文件系统的树形结构,可能会使目录之间出现环。
为什么软链接可以指向目录而硬链接不行呢?根本原因在于软链接实质
您可能关注的文档
最近下载
- 2025年注册信息系统安全专家(CISSP)考试题库(附答案和详细解析)(1010).docx VIP
- 《苯二氮卓类药物的合成》课件.ppt VIP
- 2025黑龙江专升本植物学考试真题 .pdf VIP
- CISSP信息系统安全工程师认证考试题库.pdf VIP
- CISSP_Official_PRACTICE_TESTS考试认证题库.docx VIP
- 集装箱正面吊运机液压系统设计主要性能试验研究与应用.pdf VIP
- tissin_positioner_ts900-manual_c调试详细步骤.pdf VIP
- 危化品车辆运输安全培训课件.pptx VIP
- 2025广西公需科目考试答案(3套涵盖95-试题)一区两地一园一通道建设人工智能时代的机遇与挑战.docx
- 2025秋沪教牛津新七年级上知识点清单(背诵版) .pdf VIP
原创力文档


文档评论(0)