我正在编辑 vi
我试图将我论文的一小部分复制到一个临时文件中
.,.+40!temp.
Run Code Online (Sandbox Code Playgroud)
但我写了
.,.+40!.
Run Code Online (Sandbox Code Playgroud)
因此,这删除了文件中重要内容中的所有内容(除了那 40 行)。有什么方法可以检索我最初拥有的文件(大约 30 页),还是必须从头开始?
我不熟悉您使用的命令,但如果您尚未退出vi
,该U
命令应该撤消更改。
否则,按期望值降序排列:
在某些情况下,文件的先前版本将被保存为filename.ext~
(可能不是您的情况,或者您甚至没有发布,但仍然值得一试)。
如果您的文件系统允许(ext3 或 ext4),则可以使用extundelete恢复该文件的早期版本及其交换。如果只有交换是可恢复的,strings
则可用于提取大片文本。您仍然需要重新组装它们,但这与从头开始重写完全不同。
否则,如果您记住一些关键词或短语,则可以恢复大部分文本。这可能是一个相当漫长的操作。您可以将整个分区筛选到strings
viadd
并将输出发送ssh
到另一台机器,以免冒覆盖本地磁盘可用空间的风险(如果您有另一个可用分区,请务必使用它)。
同样,如果系统没有重新启动,您具有 root 访问权限,并且 /proc/kcore 伪文件的大小合理,您可以使用 从中提取原始文本并将其strings
转储到文件中。那么grep
就会成为你的朋友。您可能还可以使用其他访问内存的方法。