【发布时间】:2013-09-14 21:53:37
【问题描述】:
我正在从 OS X 上的旧应用程序转换文件。出于当时一定很好的原因,它通过索引节点编号在其数据库中记录相关文件。 (我认为 Apple 将其称为 FileID。)
给定一个文件名,我可以使用 os.stat() 在 Python 中找到 inode。但是有没有一种 Python 方法可以找到给定 inode 编号的名称?
做不到这一点,我可以想到另外两种方法:
扫描文件夹中的所有文件以收集其所有inode编号,并将其保存在字典中以供快速参考。
使用 os.system('find /folder/folder -inum 1234') 并解析我所追求的输出。我想这确实和上面做的一样,但由操作系统完成。
我更喜欢 Python 原生解决方案,但如果有任何其他建议,我将不胜感激。
这将是 OS X 10.5 或 6 上的 Python2。
【问题讨论】:
-
基本上,给定一个 inode 编号,没有简单的方法来确定文件的名称。很久以前,第 7 版 Unix 提供了工具
ncheck来“从文件编号生成文件名”(它是一个先驱,与icheck,到无所不能的fsck)。但这也涉及扫描整个文件系统。
标签: python