linux中文件的组织形式

linux中文件的组织形式

linux文件的组织形式与windows不一样,windows的一个分区对应一个磁盘符,而且搜索文件是依靠文件名,而linux没有磁盘符这一说法,目录都是需要挂载(mount)到分区上,搜索文件是用inode(索引节点)机制。具体看下面的介绍。
============================
1.索引节点
============================

磁盘分区中的文件,都有一个索引节点 , 它是一个数组的入口索引号

对应关系:

    一个文件 <----一> 一个索引结点号 <----一> 数组中的一个元素(即一个索引节点)

索引节点存储的信息 : 
    1) 文件所有权                 用户,组
    2) 访问模式                   读,写,执行
    3) 时间标记                   最后一次修改,访问的时间
    4) 文件类型                   常规/特殊/其它/抽象伪装文件
    5) 文件数据块在磁盘上的位置   对应的目录块和数据块,不包含文件名
    6) 文件长度

当一个文件系统被创建时,会创建若干数量的索引节点,该数目就是文件系统所能容纳的最大文件数。

索引节点存储在一个称为索引节点表<inode table>的数组中。


============================
2. linux 硬盘组织结构
============================

    1) 引导区
    2) 超级块(super block) 硬盘或分区上文件系统的整体信息,比如文件系统的大小
    3) 索引节点(inode)      包含了针对某一具体文件的全部信息<无文件名>
    4) 数据块               真正存储文件内容的位置
    5) 目录块               文件名,文件索引节点号

于是有如下对应关系:

文件(单)---------索引节点号(单)-----------目录项(多)

可见:可以为一个文件创建多个有效路径


============================
3.文件系统常识
============================

根设备,任何一个需要mount,才能挂载进来的分区、软盘、NFS, 光驱都是一个独立的文件系统。

注意:硬连接只能局限在一个文件系统内,而软连接则无此限制。

VFS linux提供了一个虚拟文件系统--VFS,它是实际文件系统的上层软件,掩盖了实际文件系统底层的具体差异,
为系统访问不同的文件系统的文件提供了一个通用的接口。

============================
4.连接计数
============================

表明本文件系统中共有几个文件项或目录项(即硬连接数)的inode和本文件相同

ls -l 显示文件拥有的硬连接数。
ls -i 显示文件的索引节点号


实际上许多文件系统并不具备inode结构,其目录结构也和以上的讨论不同,但通过VFS,系统均为其提供了虚拟一致的inode和目录项结构。

所以,'ls -il'命令实际显示的inode应该是VFS inode,也就是说,inode是存在于内存中的数据结构,而不一定是实际的硬盘结构。

但为Linux量身定做的ext2文件系统具备实际的inode和连接型目录项结构,所以,对于ext2文件系统,可以认为我们上面讨论的关于硬连接的概念是完全正确的。


============================
5. cp 和 硬连接的区别
============================

cp    : 建立了一个新文件 ,包括索引节点号,文件数据块,目录项,这三者都增加
硬连接: 建立了一个快捷方式,只有目录项增加,其余几项均不变


===============================================
6. 硬连接(symbolic link) vs 软连接(hard link)
===============================================

硬连接 建立的连接的属主、inode节点号,权限完全等同于最初的文件   ( 新的文件相当于一个快捷方式<一个别名>,仅仅是目录项加1,其它不变 )
软连接 属主 :lrwxrwxrwx 由l--〉软连接 其它依赖于原文件        ( 新的文件具有一个全新的inode节点,也可以理解为一种快捷方式 )


总结:
1)
hard link所创建的文件和原文件的索引节点编号相同,相当于一个原文件有多个别名; 
symbolic link所创建的链接和原文件的索引节点编号不同,相当于指向原文件的位置。

2)
符号连接可以跨分区,而硬连接只能在本分区进行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值