VFS的索引节点 链接

文件系统处理文件所需要的所有信息都放在称为索引节点的数据结构中。文件名可以随时更改,但是索引节点对文件是唯一的,并且随文件的存在而存在。VFS索引节点的数据结构inode/includ/fs/fs.h中定义如下(2.4.x版本)

 当一个文件系统被格式化成ext2或者ext3的时候,就会产生Inode number。 

 

1、用ls -i命令来查看文件系统对象的索引节点号
  $ ls -i /usr
  558145 bin      607393 games      2429605 kerberos    705889 local              131329 share      32833 X11R6        574561 dict            623809 include    640225 lib        1346113 src            590977 etc            673573 java          689473 libexec  213409 sbin                  12 tmp                      11 lost+found
 
2、文件系统的每个对象都分配到一个独一无二的索引节点号。
 
3、用ls -dl命令看到索引节点被引用的次数
  $ ls -dl /usr/local
drwxr-xr-x    12 root        root                4096 Dec  2005 /usr/local
  其中12表示被引用了12次。
 
4、创建所有缺少的父目录
  $ mkdir -p $ORALCE_BASE/admin/$ORACLE_ADMIN/bdump
 
5、创建空文件
  $ touch junli.log
 
6、硬链接和符号链接(软链接)
    $ ln firstlink secondlink
  $ ln -s firstlink secondlink
 
  一个给定的索引节点可以有任意数目的硬链接,该索引节点一直存在于文件系统,直到所有的链接消失。硬链接不能跨越文件系统。
    符号链接是一种专门的文件系统,链接通过名称引用另一个文件,而不是直接引用索引节点。符号链接不阻止文件被删除,如果目标文件消失, 那么符号链接仅仅不可用。
  符号链接比硬链接更灵活, 可以给任何类型的文件对象(包括目录)符号链接。又因为符号链接的实现是 基于路径的(而不是索引节点), 所以创建指向另一个文件系统上的对象的符号链接是完全可行的
 
 
 
 

读取和修改一个文件:
1、我们首先根据文件名,找到这个文件的Inode-no(节点数)。
2、当我们找到个文件的Inode-no时,就会根据这个number数在inodetable中找到对应的条目。


3、现在要我们看一看inodetable中的信息(ls -li):从左到右依次是:节点数、文件类型、文件的权限、硬链接数、用户ID、组ID、文件的大小、时间戳记,最后为指向硬盘上存放数据的数据块的指针

 

简单说一下其中的某些项(文件类型大有7种):

-          普通的文件
d          目录
l          链接文件
b          块设备文件
c          字符设备文件
p          命名管道
s          socket文件

       从这里我们也可以看出,在linux文件系统中,目录也是当作文件来看的!对于时间戳记有三种:存取时间,修改时间,变更时间 存取时间,为最后一次打开,或者是访问这个文件的时间; 而修改时间,为最后一次修改文件的时间; 当inodetable中的某项改变时,会更新变更时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值