码迷,mamicode.com
首页 > 系统相关 > 详细

Linux文件系统 软链接 硬链接

时间:2015-07-10 16:56:38      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:sector   symbolic link   linux   

要理解软硬链接,就先要从ext文件系统的存储原理说起

 

硬盘上最小的存储单位是sector, 大小为512bytes.

因为数据往往都大于512bytes所以我们把多个sector连起来存储数据, 这样做的目的是减少磁盘I/O的负担

这个多个连起来的sector叫做block。Block的大小是2的n次方倍512bytes

 

存储空间分为:数据区和元数据区

数据区:block存储真实数据,一般大小为1kb 2kb, 4kb

元数据区: inode存储元数据,包括inode索引,名称,大小,修改时间等,inode为128bytes

 

ls –i可以查看文件对应的索引编号

stat 可以查看文件的inode信息

inode信息里面的索引标号应该和擦看文件信息的索引编号相对应的,如下图,a文件的索引编号都为1052822

技术分享

技术分享

这里需要说明下,目录和文件在block存储的内容性质不一样

文件存储的是文件内容本身

目录要存储目录下所有文件的inode index和文件名,它的目的是帮助查找文件或其他目录


图详细描述了访问文件的过程

技术分享


理解上图后我们来说说硬链接


我们考虑下如果/tmp目录下还有个b文件,它的inode index和a一样也是指向同一个inode

技术分享

这是我们就是a,b是彼此的硬链接

查看方式是ls –l a 或ls–l b, 属主前有个2,就是说有另外一个硬链接

技术分享

命令:ln被链接文件链接文件例如ln a b


软链接

技术分享


b的inode指向的内容是a文件的路径,再通过这个路径查找inode

查看方式是

技术分享



这里的b是指向a的,而大小就是1个字节大小.也就是a这个相对路径

命令:ln–s被链接文件链接文件例如ln –s a b

软硬链接的区别

软链接:

·        可以跨分区链接-因为指向的只是路径

·        可以链接文件或目录

·        删除不影响源文件-和windows的快捷键类似

硬链接

·        不可以跨分区链接-应为inode只能被本区的文件指向

·        不可以链接目录-目录下的目录可能指向父目录,产生死循环

·        删除使inode的链接数降低为0在整个文件删除



本文出自 “robbie” 博客,请务必保留此出处http://jzrobbie.blog.51cto.com/6535329/1672880

Linux文件系统 软链接 硬链接

标签:sector   symbolic link   linux   

原文地址:http://jzrobbie.blog.51cto.com/6535329/1672880

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