Come riparare e ripristinare un "file di cronologia corrotto" in zsh?


101

Dopo un riavvio, ho iniziato a vedere un messaggio durante il caricamento della shell:

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

Come posso recuperare da questa situazione e potenzialmente recuperare parte della storia?

Risposte:


170

Ho trovato un post sul blog che descrive una correzione che sembra funzionare per me, ripristinando al contempo la cronologia mancante:

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

7
Posso chiedere cosa significa il comando fc -R .zsh_history? Ci ho provato man fce mi dice questo No manual entry for fc, e nessuno dei due potrebbe fc -hdirmi più dell'uso. Grazie.
kenshinji,

2
Per maggiori dettagli sul comando fc, vedere qui e qui . L'opzione -R non è presente lì, ma elenchi di completamento zsh, tra le opzioni,-R -- read history from file
Jeffrey Lebowski,

Qualcuno sa da cosa potrebbe essere stato causato questo errore?
Hugronaphor,

1
@hugronaphor Nel mio caso è stato che dovevo fare un duro spegnimento del mio laptop. Ciò ha causato alcuni problemi per me mentre lo facevo durante un'operazione di scrittura su disco e una delle cose che è stata corrotta era il mio file zsh tra le altre cose.
RyanNerd,

1
Per la fcdocumentazione corretta , consultare man zshbuiltinsanche disponibile su zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html . Come suggerito da Jeffrey, "'fc -R' legge la cronologia dal file specificato".
Martin

14

Anche la semplice rimozione di caratteri casuali può funzionare:

  • vim .zsh_history

  • Rimuovi qualsiasi strano personaggio, che molto probabilmente sarebbe vicino alla fine. (Nel mio caso avevo una stringa di @nell'ultima riga, a seguito di un arresto forzato)

  • :x (salva ed esci)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.