恢复使用 cat 意外写入的文件 >

恢复使用 cat 意外写入的文件 >

我保存了一个文本文件,其中包含我在学习 Linux 时收集的有用命令和信息。每当我遇到需要添加的好东西时,我都会在 vim 中打开它,但这变得很乏味。所以今天我习惯cat >>在上面添加一些东西,想稍后再回去组织它。 (我在没有 GUI 的情况下工作,所以每件小事都有帮助。)我要么使用 cat 要么只执行命令 >> 文件。

我试图查看该文件,却意外地执行了操作cat > textfile并将该文件清空了。

当我写这篇文章时,看看我的 .zsh_history,更准确地说,我所做的是cat> textfile | tail。显然我取出了空格而不是重定向“大于”符号之一。

我尝试过的

我立刻意识到我做了什么,并且在那个终端里我没有再做任何事情;猫仍然坐在那儿,排着空队等待。基于这个问题, 我试过这个答案在另一个 tty 终端中:

建议答案:

sudo grep -i -a -B100 -A100 'string' /dev/sda1 > file.txt

我的尝试:

grep -F -a -B3000 -A3000 'string' /dev/sdb2 > /media/EXTERNAL_HDD_MOUNT/grepResults

我以为我会把它留一夜,看看早上会发生什么,但很惊讶地发现它在几乎整整一个小时内就完成了。操作系统安装在 USB/C 闪存驱动器上,主分区 186 GB(不是永久实时,只是正常安装)。它在当前没有任何内部硬盘驱动器的计算机上运行。它提供了 11 MB 的内容,因此我必须提取可读的字符串并查看我得到了什么(我必须学习如何做的另一件事)。

我的问题之一是,如果以及如何杀死/停止/终止 cat 进程,这有什么不同吗?我知道如果没有换行符它就无法工作,但无论如何它都会立即执行其操作,并且当我与其他查看者一起查看时文件已经显示为空。

另一个问题(或 xy 问题)是我可以从 /proc 恢复它吗?这是针对 2010 年问题的另一个建议,我认为看起来很有希望。我找到了 PID,它在 /proc 中有一个目录,但我不知道当我进入那里时我在看什么,而且我不知道如何处理它。

哦,我做的另一件事是fc -p。我担心我执行的任何命令都会导致某些内容写入驱动器。 ZSH 历史是我目前知道的少数事情之一,所以我用谷歌搜索并试图阻止它。

任何 grep 的建议也将受到赞赏。我意识到我的“MyCommands”文件充满了特殊字符,所以我试图在选择要搜索的唯一字符串时避免使用这些字符,只是为了不向混合中添加额外的变量并使事情变得更加复杂。我将其保存为 .bat 只是因为我喜欢该格式的语法突出显示。

相关内容