Como corrigir e recuperar um "arquivo de histórico corrompido" no zsh?

101

Após 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 da história?

gak
fonte

Respostas:

170

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

mv .zsh_history .zsh_history_bad
strings .zsh_history_bad > .zsh_history
fc -R .zsh_history
gak
fonte
7
Posso perguntar o que o comando fc -R .zsh_historysignifica? Eu tentei man fce isso me diz isso No manual entry for fc, e nem o poderia fc -hme dizer mais do que o uso. Obrigado.
Kenshinji #
2
Para mais detalhes sobre o comando fc, veja aqui e aqui . A opção -R não está presente lá, mas listas de conclusão zsh, entre as opções,-R -- read history from file
Jeffrey Lebowski
Alguém sabe por que esse erro pode ter sido causado?
precisa saber é o seguinte
1
@hugronaphor No meu caso, eu tive que fazer um desligamento rígido do meu laptop. Isso causou alguns problemas para mim, como fiz durante uma operação de gravação em disco e uma das coisas que foram corrompidas foi o meu arquivo zsh, entre outras coisas.
precisa saber é o seguinte
1
Para obter a fcdocumentação correta , consulte man zshbuiltinstambé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
14

A simples remoção de caracteres aleatórios também pode funcionar:

  • vim .zsh_history

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

  • :x (salvar e sair)

aksh1618
fonte