了解 UNIX/Linux 文件系统 Inode
inode (索引节点)是 Linux 和 UNIX 文件系统中的一个基本概念。文件系统中的每个对象都由一个 inode 表示。但对象是什么?让我们试着用简单的语言来理解它。Linux(和 UNIX)下的每个文件都有以下属性:
=> 文件类型(可执行、块特殊等)
=> 权限(读取、写入等)
=> 所有者
=> 组
=> 文件大小
=> 文件访问、更改和修改时间(请记住,UNIX 或 Linux 从不存储文件创建时间,这是 UNIX/Linux 系统管理员工作面试中最喜欢问的问题)
=> 文件删除时间
=> 链接数(软/硬)
=> 扩展属性,例如仅附加或任何人都不能删除文件,包括root 用户(不变性)
=> 访问控制列表 (ACL)
所有上述信息都存储在 inode 中。简而言之,inode 标识文件及其属性(如上所述)。每个 inode 都由文件系统中唯一的 inode 编号标识。inode 也称为索引号。
inode 定义
inode 是传统 Unix 风格文件系统(例如 UFS 或 ext3)上的数据结构。inode 存储有关常规文件、目录或其他文件系统对象的基本信息。
如何查看文件 inode 编号?
您可以使用 ls -i 命令查看文件的 inode 编号
$ ls -i /etc/passwd
示例输出
32820 /etc/passwd
您还可以使用 stat 命令来找出 inode 编号及其属性:
$ stat /etc/passwd
输出:
File: `/etc/passwd' Size: 1988 Blocks: 8 IO Block: 4096 regular file Device: 341h/833d Inode: 32820 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2005-11-10 01:26:01.000000000 +0530 Modify: 2005-10-27 13:26:56.000000000 +0530 Change: 2005-10-27 13:26:56.000000000 +0530
Inode 应用程序
UNIX/Linux 操作系统中系统管理员使用的许多命令经常会给出 inode 编号来指定文件。让我们看看 inode 编号的实际应用。输入以下命令:
$ cd /tmp
$ touch \"la*
$ ls -l
现在尝试删除文件“la*
您无法删除使用控制字符或键盘无法输入的字符或特殊字符(如 ?、* ^ 等)创建的文件。您必须使用inode 编号来删除文件。这是“理解UNIX/Linux 文件系统”的第四部分,继续阅读“理解 Linux 文件系统”系列的其余部分(这是第四部分):