如何从内存中恢复损坏的 Zsh 历史文件?

如何从内存中恢复损坏的 Zsh 历史文件?

由于一些我无法理解的原因(并且超出了这个问题的范围),我的 Zsh 历史文件被损坏了。我打开了几个会话,其中有记忆中的历史。有没有办法恢复历史记录文件(以其正确的格式)来自内存中的内容?

history虽然or命令的输出fc看起来像这样(至少默认情况下)

57694  type -a ssh-keygen
57695  ssh -v localhost

当文件的格式如下

: 1545938685:133;vim ~/.zshrc
: 1545938820:0;exit

(显然这些不是相同的条目 - 我只是让它们显示格式,因此是我面临的问题。)

有什么方法可以fc显示重新创建历史记录所需的所有数据文件和损坏之前一样吗?

(如果这不可能,我可以恢复最多当然,从备份驱动器中恢复它,但我宁愿恢复所有它,并且知道将来如何执行此操作将很有用。)

答案1

深入研究ZSHBUILTINS(1)的手册页我发现:

fc -W .zsh_history_from_ram

zsh将历史记录写入文件,其格式与保存的格式完全相同~/.zsh_history。只要您的 shell 会话在内存中仍保留有历史记录,此方法就可以工作。

相关内容