Question Comment réparer et récupérer un "fichier historique corrompu" dans zsh?


Après un redémarrage, j'ai commencé à voir un message lors du chargement du shell:

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

Comment puis-je me remettre de cette situation et récupérer une partie de l'histoire?


86
2017-08-16 02:52


origine




Réponses:


Trouvé un article de blog décrivant un correctif qui semble fonctionner pour moi, tout en restaurant mon histoire manquante:

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

152
2017-08-16 03:54



Puis-je demander ce que la commande fc -R .zsh_history signifier? J'ai essayé man fc et ça me dit que No manual entry for fc, et le fc -h dis moi plus que l'usage. Merci. - kenshinji
Pour plus de détails sur la commande fc, voir ici et ici. L’option -R n’y est pas présente, mais les listes d’achèvement zsh, parmi les options, -R -- read history from file - Jeffrey Lebowski
Quelqu'un sait ce que cette erreur aurait pu être causée par? - hugronaphor
@hugronaphor Dans mon cas, c'était que je devais faire un arrêt brutal de mon ordinateur portable. Cela a causé certains problèmes pour moi car je l'ai fait pendant une opération d'écriture de disque et l'une des choses qui ont été corrompues était entre autres mon fichier zsh. - RyanNerd
Pour le correct fc documentation, voir man zshbuiltins, également disponible à zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html. Comme suggéré par Jeffrey, "fc -R" lit l'historique du fichier donné ". - Martin


Supprimer simplement des caractères aléatoires peut aussi fonctionner:

  • vim .zsh_history

  • Supprimez tous les caractères étranges, qui seraient probablement proches de la fin. (Dans mon cas, j'avais une chaîne de @ dans la dernière ligne après un arrêt forcé)

  • :x (sauvegarder et quitter)


3
2017-07-06 10:03



J'ai aussi eu un tas de @s dans une ligne. J'ai enlevé ceux-ci et le tour est joué, l'erreur est partie! - illusionist