Questão Como corrigir e recuperar um "arquivo de histórico corrompido" em zsh?


Depois de uma reinicialização, comecei a ver uma mensagem ao carregar o shell:

zsh: corrupt history file /home/myusername/.zsh_history

Como posso me recuperar dessa situação e potencialmente recuperar parte do histórico?


86


origem




Respostas:


Encontrei um postagem no blog descrevendo uma correção que parece funcionar para mim, enquanto restaura meu histórico ausente:

mv .zsh_history .zsh_history_bad
strings .zsh_history_bad > .zsh_history
fc -R .zsh_history

152



Posso perguntar o que o comando fc -R .zsh_history significar? eu tentei man fc e isso me diz que No manual entry for fce nem o fc -h conte-me mais do que o uso. Obrigado. - kenshinji
Para mais detalhes sobre o comando fc, veja Aqui e Aqui. A opção -R não está presente, mas as listas de conclusão do zsh, entre as opções, -R -- read history from file - Jeffrey Lebowski
Alguém sabe o que este erro poderia ter sido causado por? - hugronaphor
@hugronaphor No meu caso foi que eu tive que fazer um desligamento do meu laptop. Isso causou alguns problemas para mim como eu fiz isso durante uma operação de gravação de disco e uma das coisas que foi corrompida foi meu arquivo zsh entre outras coisas. - RyanNerd
Para o correto fc documentação, consulte man zshbuiltins, também disponível em zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html. Como sugerido por Jeffrey, "fc -R" lê o histórico do arquivo fornecido ". - Martin


Simplesmente remover caracteres aleatórios também pode funcionar:

  • vim .zsh_history

  • Remova quaisquer caracteres estranhos, que provavelmente estariam perto do fim. (No meu caso eu tive uma série de @ na segunda última linha, após um desligamento forçado)

  • :x (salvar e sair)


3



Eu também tive um monte de @s em uma linha. Eu removi aqueles e voila, o erro se foi! - illusionist