一小时前用 rm 意外删除了文件 - 恢复的想法?

一小时前用 rm 意外删除了文件 - 恢复的想法?

我不小心删除了 MAC 上网站文件夹下的文件

/Library/Server/Documents/mysite

除了我最近创建的大约 30 个文件外,我在远程服务器上有一份文件夹的副本。这些新文件大部分是.php、、.js.html

此外,大多数这些文件都具有某些字符串somestring,以及与给定字符串相关的字符串,例如somestring_plusotherstring

也许用 dd 或者其他东西我可以重建这些文件?

一直在尝试第三方工具,例如EaseUSDiskDrill但他们似乎没有在/Library.他们找到了大量的东西,但在documents结果列表中没有显示任何php文件js

我目前正在等待dd将 MAC 系统驱动器逐字节复制到名为backup.data.之后,希望能有一些清晰的康复之路。

不管怎样,希望得到好的建议!

谢谢,布莱恩

答案1

(抱歉,我没有 Mac/OSX 经验。)在 Linux 中,您可以使用 .filter 从原始数据中过滤 [ascii] 文本strings

strings -w disk_or_file | grep 'uniquestring'

disk_or_file应该是包含文本文件的原始数据,并且grep应该查找仅出现在您要查找的文件中的唯一字符串。

您可以添加-C 100到 grep 以在该唯一字符串之前/之后输出 100 行。如果您的文件超过 100 行,请相应地调整数字。

您还可以添加-t dstrings输出找到的字符串的字节位置。这样您就可以使用十六进制编辑器或 dd 或其他工具直接检查该位置周围的数据,而无需滤光镜strings。 (如果您的文件不是 ascii,这可能很重要。)

如果您的唯一字符串至少有 8 个字符长,您可以添加-n 8tostrings来阻止它打印较短的字符串。如果您的唯一字符串较长,请相应地调整此数字(有助于性能)。

文件名以及确切的文件边界必须手动恢复。与其他文件雕刻方法一样,这仅恢复文件内容。

如果该文件未被复制而是通过许多中间“保存文件”步骤进行编辑,则也可能会遇到文件的不完整版本。如果可能,请选择唯一的字符串作为您在后续版本中添加的函数名称之一。

相关内容