由于部分原因使我无法理解(并且超出了此问题的范围),我的 Zsh 历史文件已损坏。我打开了几个会话,这些会话在内存中都有历史。有没有办法从内存中恢复历史文件(以正确的格式)?
虽然history
orfc
命令的输出看起来像这样(默认情况下,至少)
57694 type -a ssh-keygen
57695 ssh -v localhost
而文件的格式类似于
: 1545938685:133;vim ~/.zshrc
: 1545938820:0;exit
(显然这些不是相同的条目 - 我只是给它们显示格式,因此我面临的问题。)
有什么方法可以fc
显示我需要重新创建历史文件的所有数据,就像它被损坏之前一样?
(如果这不可能,我当然可以从备份驱动器中恢复大部分内容,但我宁愿恢复所有内容,知道将来如何执行此操作会很有用。)
深入
ZSHBUILTINS(1)
研究 的手册页,我发现:zsh
将历史记录以与in保存的完全相同的格式写入文件~/.zsh_history
。只要您有一个仍然在内存中具有历史记录的 shell 会话,这将起作用。