【发布时间】:2021-12-18 03:23:21
【问题描述】:
我设法通过运行一个没有我的任何配置(它是 vanilla)的 shell 将我的 bash 历史文件截断为 500 个条目。
我意识到这大约 300 个命令为时已晚,但幸运的是我在截断之前打开了一个会话。 history 在那个会话中给了我我的“已删除”历史记录,但格式如下:
449 05/07/21 02:04:03 ncdu
前 300 个条目是截断的文件,而不是原始的 300 个。
我认为实际的 300 个条目必须存储在某个地方。我如何获得它们?我只有一次与旧历史的会话。
另外,如果可能的话,我想以以下格式获取以前的历史记录:
#1635749826
ll
【问题讨论】:
-
cmets中的数字是unix时间戳吗?
-
如果是这样,运行 python 脚本从旧文件中提取每个时间戳并粘贴 unix 时间戳,然后粘贴命令并不难
-
是的,它是一个时间戳,这很容易。但是,如果我们要恢复前 300 个条目,我们不妨得到一个正确的、可用的文件。拥有这些条目不如弄清楚如何获得它们。
-
将历史输出转储到一个文件中(为了安全起见),也许可以试试
history -a(来自help history=>-a : append history lines from this session to the history file);也许先在另一个会话上测试? -
@markp-fuso 成功了!它似乎覆盖了我的新 bash 历史记录(我确实备份了它)但是它并没有带回前 500 个。
标签: bash shell history recover