1

所以我只是在玩文件,比如用十六进制编辑器打开并做一些事情。我发现了一件事……我可以访问存储在文件中的数据,但是文件属性、时间戳和其他内容等元数据存储在哪里?

它绝对没有存储在文件中,但它在哪里?它是存储在硬盘文件系统中的某个地方还是其他任何地方?我还注意到 NTFS 文件系统也可以存储权限,就像我可以在 NTFS 文件系统上使用 dos 命令 cacls(或 icacls)一样,但它不支持像 FAT32 这样的文件系统。如果它在硬盘上,那么我们可以使用 linux 更改元数据(隐藏的文件属性、存档等)(我是对的)吗?

请有人解释或告诉我在哪里可以找到有关此主题的正确信息。

4

2 回答 2

2

元数据与文件数据分开存储。通常在称为 的结构中inode,但它取决于使用的文件系统。在 Linux 上,您通过函数chmod(2)、chown(2) 等提供的 API 处理元数据。括号中的数字是节号,您可以使用 man 命令阅读这些内容: man -s2 chown。对于命令行,Linux 有类似名称的命令(chmod、chown、touch 等)。

于 2012-09-17T05:08:38.080 回答
0

是的,文件系统本身会分配额外的空间来在磁盘上存储元数据。所有操作系统都为您提供允许更改文件元数据(时间戳、属性、名称等)的 API。

您可以打开分区或硬盘的相应设备文件(例如“\.\C:”)并对其进行读/写。当您了解文件系统的详细信息时,您可以找出磁盘上特定文件的元数据位置。

于 2012-09-17T04:59:15.713 回答