我想使用 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
不过可能有点慢。