转自:http://blog.fangjian.me/posts/2010/10/21/linux-inode/
Linux Inode相关知识
这篇文章主要讲一下Linux底下inode相关的一些知识,同时介绍一下,文件系统上的inode数目是如何计算,如何管理的。
什么是inode?
inode是文件系统(File System)上的一个概念,是文件系统上用来保存文件信息的一种结构。
从根本上讲, inode 中包含有关文件的所有信息(除了文件的实际名称以及实际数据内容之外),inode包含了如下基本信息(只列出了常用的):
- inode 编号——用来识别文件类型, 以及用于 stat C 函数的模式信息
- 文件的链接数目
- 属主的 UID
- 属主的组 ID (GID)
- 文件的大小
- 文件所使用的磁盘块的实际数目
- 最近一次修改的时间
- 最近一次访问的时间
- 最近一次更改的时间
下图为inode的结构图:
Linux下对inode进行查看的方式
df命令查看剩余inode数量
1 2 3 4 5 6 7 8 9 |
|
这个命令-i的意思是列出inode数目,-h是以一种人们易于理解的方式呈现结果,我们通过这个命令可以看到各个分区inode数目的使用情况。有一个你必须要清楚的是,一旦inode用完,你的文件系统将无法创建任何内容,就算有剩余的空间。这点我相信应该道理很清楚
stat命令查看指定文件信息
1 2 3 4 5 6 7 8 |
|
使用这个命令,我们可以找到特定文件的索引编号,以及其他的 inode 项目,如权限、文件类型、UID、GID、链接的数目(非符号链接)、文件大小和最近一次更新、最近一次修改以及最近一次访问的时间戳。
ls命令
在我们的日常工作中总会碰到这样的情况,难以删除或者管理某些文件,因为这些文件的文件名中使用了短横线或者其他特殊字符、或者其文件名完全不正确。这很可能是有人对该文件进行了错误命名。
因为 UNIX 中的大多数命令,包括开关或者选项在内,都是以连字符 (-) 或者双连字符 (–) 开头的,很难使用诸如 rm、mv 和 cp 之类常用的命令来操作这些文件。幸运的是,某些命令提供了一些选项,以用来显示相关文件所关联的 inode 的索引编号。ls 命令就提供了一个这样的选项:
1 2 3 4 5 |
|