如何通过inode查找文件的父文件

如何通过inode查找文件的父文件

我想使用 ntfsundelete 来维护恢复文件的目录结构。ntfsundelete 的输出如下:

Inode    Flags  %age  Date            Size  Filename
191321   FN..   100%  2016-04-26      1175  file.txt
191322   D...   100%  2016-04-26        10  my directory

输出不显示“file.txt”的完整路径,仅显示其索引节点。那么,如何找到其父目录的inode呢?

答案1

索引节点没有父信息,这就是目录项和索引节点是分开的原因。它是有父级的目录条目(或 dentry)。

上面的原因是为了支持硬链接。由于硬链接指向相同的 inode,因此它们可以位于不同的目录(父目录)下。

答案2

您是否尝试过手册页--parent中描述的参数ntfsundelete

由于它能够从最初包含该信息的文件夹中找到信息,因此通常应该可以工作。

答案3

三位一体救援套件有一个名为的实用程序ntfsundeleteall,其描述为

实用程序“ntfsundelete”的简单包装...它在文件名之前添加原始索引节点(=文件系统上文件的内部编号),因此您始终拥有唯一的文件名。之后由您重命名文件,但至少恢复的文件名中包含原始名称。

您可以通过下载 TRK 磁盘并从中启动来使用它。不幸的是我无法找到这个包装脚本的来源。不难想象一个 bash 脚本会根据 报告的 iNode 名称创建文件夹ntfsundelete --scan,甚至可能根据连续的 iNode 编号对文件和文件夹做出乐观的猜测......但是很难编写它,我找不到任何有过的人。

答案4

您可以使用find(1),例如:

find ./ -inum 191321

不过可能有点慢。

相关内容