唯一标识文件

use*_*885 2 linux filesystems file

我想索引本地数据库中的文件,但我不明白如何识别每个单独的文件.例如,如果我将文件路径存储在数据库中,那么如果移动或删除文件,该条目将不再有效.我想有一些方法可以唯一识别文件,无论发生什么事情,但我没有成功使用谷歌.

这将特别针对*nix/Linux和ext4,所以请不要特别针对windows或ntfs或类似的东西.

chu*_*ash 6

除了上面的优秀建议之外,您可以考虑使用文件的inode number属性,可以在shell中查看ls -i.

在我的一个盒子上使用index.php:

ls -i

产量

196237 index.php

然后我使用重命名文件mv index.php index1.php,之后相同的ls -i产量:

196237 index1.php

(注意inode编号是相同的)

  • inode数量不够,还必须考虑设备ID,否则可能会发生冲突:http://stackoverflow.com/a/1289864/246207 (4认同)