Wie kann ich eine "korrupte Verlaufsdatei" in zsh reparieren und wiederherstellen?


101

Nach einem Neustart wurde beim Laden der Shell eine Meldung angezeigt:

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

Wie kann ich mich von dieser Situation erholen und möglicherweise einen Teil des Verlaufs wiederherstellen?

Antworten:


170

Wir haben einen Blog-Beitrag gefunden , der einen Fehler beschreibt, der für mich zu funktionieren scheint, während ich meinen fehlenden Verlauf wiederherstelle:

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

7
Darf ich fragen, was der Befehl fc -R .zsh_historybedeutet? Ich habe es versucht man fcund es sagt mir das No manual entry for fc, und keiner konnte fc -hmir mehr sagen als die Verwendung. Vielen Dank.
Kenshinji

2
Weitere Informationen zum Befehl fc finden Sie hier und hier . Die Option -R ist dort nicht vorhanden, aber zsh Vervollständigungslisten unter den Optionen,-R -- read history from file
Jeffrey Lebowski

Weiß jemand, woran dieser Fehler liegen könnte?
Hugronaphor

1
@hugronaphor In meinem Fall musste ich meinen Laptop hart runterfahren. Dies verursachte einige Probleme für mich, als ich dies während eines Plattenschreibvorgangs tat und eines der Dinge, die beschädigt wurden, war unter anderem meine zsh-Datei.
RyanNerd

1
Die richtige fcDokumentation finden Sie man zshbuiltinsauch unter zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html . Wie von Jeffrey vorgeschlagen, liest "'fc -R' den Verlauf aus der angegebenen Datei".
Martin

14

Das einfache Entfernen von zufälligen Zeichen kann auch funktionieren:

  • vim .zsh_history

  • Entfernen Sie alle seltsamen Zeichen, die sich höchstwahrscheinlich dem Ende nähern würden. (In meinem Fall hatte ich @nach einem erzwungenen Herunterfahren eine Reihe von in der vorletzten Zeile)

  • :x (speichern und schließen)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.