我知道在Unix(具体来说是Mac OS X)中,超级块存储有关磁盘上数据布局的信息,包括inode开始和结束的磁盘地址。 我想在我的程序中扫描inode列表以查找已删除的文件。 如何找到inode开始的磁盘地址? 我已经查看了statfs命令,但它没有提供这些信息。
我知道在Unix(具体来说是Mac OS X)中,超级块存储有关磁盘上数据布局的信息,包括inode开始和结束的磁盘地址。 我想在我的程序中扫描inode列表以查找已删除的文件。 如何找到inode开始的磁盘地址? 我已经查看了statfs命令,但它没有提供这些信息。
之后内容变得更加复杂。例如,可以阅读B*树了解更多信息。
当你删除一个文件时,因为磁盘上没有留下太多信息,所以你会遇到相当大的麻烦来查找已删除的文件。
如果你在FAT(或UDF)文件系统上删除一个文件,它的目录条目只是被标记为“已删除”,而大部分目录条目仍然完好无损。
在HFS卷中,由于它们使用B-树,已删除的编辑必须从目录中删除,否则搜索项目的效率将不再起作用(虽然这个论点可能有点薄弱,但事实是已删除的条目会被删除和覆盖)。
因此,除非删除是意外地通过写入目录扇区或重新初始化卷发生的,否则你将找不到太多信息。