浅析linux下的链接文件

浅析linux下的链接文件

ID:31434956

大小:107.00 KB

页数:6页

时间:2019-01-09

浅析linux下的链接文件_第1页
浅析linux下的链接文件_第2页
浅析linux下的链接文件_第3页
浅析linux下的链接文件_第4页
浅析linux下的链接文件_第5页
资源描述:

《浅析linux下的链接文件》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、浅析Linux下的链接文件  【摘要】Linux在其文件系统中引入了链接文件用于方便用户使用和系统管理。本文对Linux下的链接文件的实质、分类、用途进行了分析和综述。  【关键词】Linux;链接文件  0引言  链接文件在Linux的文件系统中扮演重要角色,而其背后又涉及到索引节点(indexnode,又称inode)这一概念。索引节点是Linux虚拟文件系统(VFS)的基本概念之一。通过剖析链接文件的实质,理解链接文件的分类与区别,可以让Linux的普通用户和管理员正确而有效的使用链接文件。  1几个基本概念  要理解Lin

2、ux下链接文件的实质,需要先理解索引节点(inode)和目录项(dentry)这两个基本概念。  在Linux文件系统中,一个文件除了纯数据本身之外,还必须包含有对这些纯数据的管理信息,如访问权限、文件的属主以及该文件的数据所对应的磁盘块等等,这些管理信息称之为元数据(matadata),保存在文件的inode节点之中。[1]6  每个inode都有一个全文件系统唯一的inode号,操作系统内核正是通过inode号而非文件名来识别不同的文件。文件名仅仅是为了方便用户使用而已,内核是通过文件名找到inode,然后通过inode访问实

3、际文件数据的。  虽然每个文件对应了唯一的inode号,但inode号是杂乱而毫无意义的,不方面用户记忆和使用,用户希望对每个文件取一个有意义的文件名。现代文件系统提供的一个基本功能是按名存取,所以还需要建立文件名到inode号的对应,这就引出了目录项(directoryentry即dentry)的概念。在Linux文件系统中有一类特殊的文件称为“目录”,目录就保存了该目录下所有文件的文件名到inode号的对应关系,这里的每个对应关系就称为一个dentry。而Linux把所有的文件和目录构建成了一个倒立的树状结构,这样,只要确定了

4、根目录的inode号,就可以对整个文件系统进行按名存取了。  2链接文件的分类  Linux下的链接文件可以分为硬链接和软链接。  硬链接的实质是现有文件在目录树中的另一个入口。也就是说,硬链接与原文件是分居于不同或相同目录下的的dentry而已,它们指向同一个inode,对应于相同的磁盘数据块(datablock),具有相同的访问权限、属性等。[2]简而言之,硬链接其实就是给现有的文件起了一个别名。如果把文件系统比喻成一本书的话,硬链接就是在书本的目录中,有两个目录项指向了同一页码的同一章节。6  硬链接的优点是几乎不占磁盘空间

5、(因为仅仅是增加了一个目录项而已),但是这一优点相对于软链接其实并不明显(因为软链接占用的磁盘空间也很少)。另外,硬链接有以下一些局限:1)不能跨文件系统创建硬链接。原因很简单,inode号只有在一个文件系统内才能保证是唯一的,如果跨越文件系统则inode号就可能重复。2)不能对目录创建硬链接。原因我在稍后解释。正因为硬链接的这些局限,加之软链接更加易于管理,所以软链接更加常用。  软链接又称为符号链接(symboliclink),简写为“symlink”。与硬链接仅仅是一个目录项不同,软连接实质上本身也是个文件,不过这个文件的内

6、容是另一个文件名的指针。当Linux访问软链接时,它会循着指针找出含有实际数据的目标文件。同样用书本来打个比方,软链接是书本里的某一章节,不过这一章节什么内容都没有,只有一行字“转某某章某某页”。  3两种链接文件的区别  软链接可以跨越文件系统指向另一个分区的文件,甚至可以跨越主机指向远程主机的一个文件,也可以指向目录。当创建了一个软链接文件后,它的权限为777,即所有权限都是开放的,实际上你也无法使用chmod命令修改其权限,但是实际文件的保护权限仍然起作用。  软链接还可以指向不存在的文件(可能是原来指向的文件被删除了,或者

7、指向的文件系统尚未挂载,或者最初建立该符号链接的时候就指向了一个不存在的文件等等),此时称这种状态为“断裂”(broken)。与之相对的是,硬链接是不能指向一个不存在的文件的。6  另外,在Linux上创建一个指向目录的软链接是允许的,但是却不能创建一个指向目录的硬链接。其实在UNIX操作系统的历史上,对目录创建硬链接曾经是允许的。但人们发现,这样做会出现很多问题,尤其是一些对目录树进行遍历操作的如fsck、find等命令无法正确执行。在《Unix高级环境编程》中提到作者Steven在自己的系统上做过实验,结果是:创建目录硬链接后

8、,文件系统变得错误百出。因为这样做会破坏文件系统的树形结构,可能会使目录之间出现环。  为什么软链接可以指向目录而硬链接不行呢?根本原因在于软链接实质上是一个文件,而硬链接实质上是一个目录项(dentry)。在linux系统中,每个文件(目录也是文

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。