可能的重复:
如何在 Firefox 中恢复网页的表单信息
我在讨论板上输入了几个段落,但是当我单击提交按钮时,该站点正在进行(非)计划维护,后退按钮决定刷新页面,使我的段落被遗忘。
快速网络搜索显示Lazarus为 Firefox 提供表单恢复。但是,安装插件需要重新启动 Firefox,即使在重新启动 Firefox(我还没有这样做)之后,Lazarus 也无法恢复它尚未备份的表单。
现在马已经离开了谷仓,我想做不可能的事:恢复我输入的部分或全部文本,而无需重新启动浏览器。
编辑:我应该澄清一下。 Lazarus是防止未来表单数据丢失的绝佳解决方案。这个问题适用于那些已经离开他们的形式并丢失了其内容的人,但希望有一些方法可以挽救这种情况。我的解决方案是获取进程的核心转储并通过它进行 grep,但可能有外行的方法来做到这一点(例如,以某种方式让 Firefox 加载上一页的缓存版本)。因此,只解决未来问题而不解决当前问题的解决方案在本问题中是题外话。
Joe*_*ams 60
这个解决方案好坏参半,适用于 Linux。简而言之:转储 Firefox 进程的内存,并在其中搜索文本片段。这很丑陋,但这是你最后的手段。
首先,使用gcore
需要安装 gdb(GNU 调试器)的实用程序转储核心:
$ ps -e | grep firefox
7089 ? 00:02:23 firefox
$ gcore 7089
[New Thread 0xa8ffeb70 (LWP 8924)]
[New Thread 0xb25feb70 (LWP 8531)]
[New Thread 0x9d7feb70 (LWP 8527)]
... snip ...
[New Thread 0xb5ffeb70 (LWP 7099)]
[New Thread 0xb67ffb70 (LWP 7098)]
[New Thread 0xb72f8b70 (LWP 7097)]
Saved corefile core.7089
Run Code Online (Sandbox Code Playgroud)
请注意,核心转储可能需要数百兆字节的磁盘空间。
如果成功了,您现在可以松一口气了。如果您的文本偶然在内存中徘徊,则它已在核心转储中捕获。
现在,试着记住你文章中的一个短语(例如,“一个深刻的影响”),并用grep
它来看看它是否出现在文档中:
$ grep 'a profound effect' core.7089
Binary file core.7089 matches
Run Code Online (Sandbox Code Playgroud)
如果你得到“二进制文件......匹配”,很好,它就在那里!如果没有,请尝试更多短语。如果你所有的grep
尝试都产生了空的输出,那么你的文章可能永远消失了,你对此无能为力。(你可以试试grep -R 'a profound effect' ~/.mozilla
,但我怀疑它会起作用)
假设您确实获得了匹配项,下一个任务将是切出包含您正在查找的文本的核心转储片段,并用于less
直观地查看它:
$ grep -B 20 -A 20 -a 'a profound effect' core.7089 > /tmp/out
$ less /tmp/out
Run Code Online (Sandbox Code Playgroud)
(您可以省略第一行而只说less core.7089
,但我发现less
在搜索如此大的二进制文件时,内存使用量往往会激增。)
现在,键入/a profound effect
,按回车键,等待并向下翻页,直到看到可识别的内容:
砰! 如果您不喜欢此结果,请输入“n”查看是否还有其他结果。另外,请务必校对垃圾内容,以免最终发布:
我的头脑经常会产生用那种语言表达的想法。
我想它会像这样被破坏,因为保存你的文章片段的内存不再分配并被后续分配践踏。
程序是一样的。首先,创建 Firefox 的核心转储。这可以在任务管理器中完成。在英语中,菜单项是Create Dump File。
倾倒需要几秒钟。
然后,使用像 http://mh-nexus.de/en/hxd/ 这样的十六进制编辑器打开转储,并搜索丢失的文本。
归档时间: |
|
查看次数: |
11001 次 |
最近记录: |