为什么我们不能直接在inode中存储文件名

时间:2014-01-13 00:19:04

标签: linux unix filesystems

我真的不明白为什么在UNIX系统中它们不直接在inode中存储文件名但是使用映射系统..这只是因为inode的大小是定义的并且不能改变所以我们无法存储长文件名的情况? 或者,如果我们更改文件名,我们不必在inode中再次执行此操作?

请告诉我,如果我错了或有其他解释。 提前致谢

1 个答案:

答案 0 :(得分:4)

为什么不直接在inode中包含文件名,这就是我想到的原因:

  1. 文件可能有多个名称,a.k.a。硬链接
  2. 支持长文件名,比如说至少255个字节(在大多数POSIX系统上),inode会比较大,并且因为文件名通常不长,所以很多这些空间都被浪费了。
  3. 如果将来我们想要/需要支持更长的文件名,我们需要更改inode的结构,这可能会导致向后兼容问题。