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?

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

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)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.