
当他写完后,关闭文本编辑器时会问他如何命名这个文件,他选择用shopping.txt。存档后,他列出该目录中的内容以确定该文件被保存在该目录下。

这个简短的例子说明Linux系统中与文件相关的三个组成部分。
数据
这里数据就是文件的内容,即以上例子中组成用户elvis购物清单的16个字节(其中13个字符显示,3个回车符不显示,只表示一行的结束)。就像UNIX系统一样,在Linux系统中,每个文件的内容以一系列的字节形式保存。
元数据(metadata)
在Linux系统中,每个文件除了内容之外,都有一些相关信息。第4章专门讲述了这类信息,即用户所有者、组所有者和权限。同时也保存了其他信息,如文件被最后一次修改或阅读的时间。当你执行ls -l命令时,大多数此类的元数据就显示出来。在Linux(和UNIX)系统中,所有与某个文件相关的额外信息都保存在一个叫做inode(i-节点)的结构中(不包括下面要讨论的重要例外)。
文件名
尽管文件名也可以被称为与文件相关的元数据,它却是上述原则的例外,因为文件名不直接保存在i-节点中。相反,文件名保存在名为dentry(目录项)的结构中。实质上,该文件名把一个文件的名称和一个inode关联在一起。
总的来说,每个文件都有以下这三层结构:dentry、inode和data。dentry含有文件名并关联inode,inode含有文件元数据并指向数据区(data)。了解这三层结构的关系有助于理解后面的概念,比如链接(link)和目录(directory)的概念。图1总结了这三层结构。

图1 文件结构
Spring AI Alibaba 格式化输出详解
