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