小编jhn*_*lmn的帖子

inode和crtime可以用作唯一的文件标识符吗?

我在Linux上有一个文件索引数据库.目前我使用文件路径作为标识符.但是,如果文件被移动/重命名,其路径将被更改,我无法将我的DB记录与新文件匹配,并且必须删除/重新创建记录.更糟糕的是,如果移动/重命名目录,那么我必须删除/重新创建所有文件和嵌套目录的记录.

我想使用inode编号作为唯一文件标识符,但如果删除文件并创建另一个文件,则可以重用inode编号.

所以,我想知道我是否可以使用一对{inode,crtime}作为唯一的文件标识符.我希望在NTFS上的ext4和creation_time上使用i_crtime.在我的有限测试(使用ext4)inode和crtime确实在重命名或移动同一文件系统中的文件或目录时保持不变.

因此,问题在于是否存在文件的inode或crtime可能发生变化的情况.例如,fsck或碎片整理或分区大小调整改变inode或crtime或文件?

有趣的是 http://msdn.microsoft.com/en-us/library/aa363788%28VS.85%29.aspx 说:

  • " 在NTFS文件系统中,文件保留相同的文件ID,直到删除它为止. "
    但是:
  • " 在某些情况下,文件的文件ID可能会随着时间而改变. "

那么,他们提到的那些案例是什么?

请注意,我研究了类似的问题:

但他们没有回答我的问题.

linux inode

14
推荐指数
2
解决办法
5455
查看次数

标签 统计

inode ×1

linux ×1