linux的文件目录-inode、软链接与硬链接理解

本文详细介绍了Linux系统中的inode概念,如何使用`touch`命令更新文件时间戳,以及`stat`、`df -i`等命令查看inode信息。还探讨了硬链接和软链接的区别,硬链接通过相同inode号码指向同一数据区,而软链接则存储目标文件的路径,不跨分区。删除源文件时,软链接会失效,但硬链接不会。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、inode
理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。
  操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
  文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
 
二、inode的内容
inode包含文件的元信息,具体来说有以下内容:
   * 文件的字节数
   * 文件拥有者的User ID
   * 文件的Group ID
   * 文件的读、写、执行权限
  * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime 指文件上一次打开的时间。
   * 链接数,即有多少文件名指向这个inode

   * 文件数据block的位置

touch   当文件存在时,可以更新三个时间戳
    当文件不存在时,则不创建
touch -a     更新atime 和 ctime
touch -m     更新mtime 和 ctime
touch -t  [CC[YY]]MMDDHHmm[.ss] (年月日时分.秒) 更新atime mtime到指定时间
touch -c 当文件已存在时,更新全部时间戳;当文件不存在时,不创建

 
可以用stat命令,查看某个文件的inode信息:

stat example.txt


三、inode的大小
inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。
每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值