码迷,mamicode.com
首页 > 其他好文 > 详细

inode工作原理及软连接与硬链接

时间:2016-08-01 23:38:15      阅读:365      评论:0      收藏:0      [点我收藏+]

标签:工作原理   linux   软连接   

                           inode工作原理及软连接,硬链接


inode:


在linux文件系统中,不管什么类型的文件,保存在磁盘分区中时,系统都会分配一个编号,叫做索引节点index node,简称inode


inode里面存储了文件的很多参数:

文件类型,权限。UID,GID,属主,属组

链接数(指向这个文件名路径名称个数)

该文件的大小和不同的时间戳

指向磁盘上文件的数据指针

....


在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块,系统获取文件内容过程如下:


技术分享


inode工作原理:


文件有元数据和数据内容组成,元数据存放在inode表里,而数据内容则是存放在数据块中

而在inode表里除了元数据,还有指针,指针对应的就是数据块的路径


直接指针:直接指针有12个,分别指向12个数据块,数据块一般默认4k,所以直接指针指向的

          是小于12*4k=48k的文件


间接指针:在inode表里,直接指针过后就是间接指针,间接指针指向一个数据块,但是此数据块

          不存储数据,而是作为一个数据块指针,每个指针大小为4个字节,所以一个数据块里面可存           放4096/4=1024个数据块指针,同样每个数据块指针会指向一个4k大小数据块,最后间接指针

          能够指向的文件大小为1024*4k=4096k=4M


双重间接指针:在间接指针后,双重间接指针可以和间接指针一样理解,只是把最后指向的存放内容的               数据块作为数据块指针,这样能够指向的文件大小为1024*1024*4k=4G



后面依次类推就可以了,原理一样




技术分享


技术分享


技术分享



硬链接:可以理解为一个文件的不同的名字


特性:

1.硬链接文件有相同的inode及数据块(date block)

2.只能对已存在的文件进行创建

3.删除一个硬链接文件不会影响其他有相同inode号的文件

4.不能跨文件系统进行硬链接的创建

5.不能对目录进行创建,只可对文件创建

6.创建硬链接会增加链接次数,而删除链接则会减少链接次数

图一


技术分享

图二

技术分享


软链接:可以理解为一个文件的快捷方式


特性:

  1. 软链接文件有自己的文件属性及权限等等

2.  可对不存在的文件或目录创建软连接

3.  软连接可跨文件系统创建

4.  创建软连接时,链接次数不会增加

5.  删除软链接文件并不影响源文件,但是如果源文件被删除了,则其软链接文件变红,内容无法访问

技术分享


文件访问图示:


技术分享


总结下硬链接和软连接文件的区别:


1.源文件和硬链接文件inode号相同,是同一个文件,只不过文件名不一样,所以大小属性等信息都一样

   而源文件与软链接文件inode号不同,是两个文件,所以大小,属性之类都不相同

2.查看文件详细属性时可知,软连接注明了是链接文件(例c ->b),而硬链接文件没有,所以我们可以    认为链接文件和源文件是完全平等的关系,而软连接可以理解为是源文件的快捷方式

3. 链接文件的数目变更,软链接文件的链接次数不会变化,而硬链接文件的链接次数会随之变化

4.软连接不受文件系统的限制,硬链接只能在同一文件系统

5.当源文件从一个目录移动到其他目录中时,访问硬链接文件不受影响,访问软链接文件会报错



inode工作原理及软连接与硬链接

标签:工作原理   linux   软连接   

原文地址:http://bietianshen.blog.51cto.com/9834214/1832946

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!