当您rm
访问文件时,它将调用 unlink(),unlink() 将从目录条目中删除该文件并释放其 inode。但是,文件的实际内容仍然在磁盘中。
有什么方法可以再次取回文件,即将其添加回目录条目吗?
答案1
该过程取决于您拥有的文件类型(图像、文本文件等)以及正在使用的文件系统。这一页Arch Wiki 有一些很好的起点。它特别提到了 Foremost、Extundelete、Testdisk 和 PhotoRec 作为一些值得关注的程序。
您可能感兴趣的一种方法基本上是从驱动器中获取所有原始文本,然后用于grep
从文本文件中查找数据。
# strings /dev/sdXN > BigStringsFile
查找唯一的字符串并将输出发送到文件。
$ grep -i -200 "Unique string in text file" BigStringsFile > GrepOutputFile
输出-200
它找到的字符串前后 200 行,您可以调整这些行以覆盖整个文本文件。
与往常一样,在处理数据时,备份重要数据和/或处理不重要的副本非常重要。除其他原因外,这些工具可以将结果写入磁盘,因此它们可能会覆盖您尝试恢复的内容。