zshで「破損した履歴ファイル」を修正および回復する方法は?


101

再起動後、シェルをロードするときにメッセージが表示され始めました:

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

この状況から回復し、潜在的に履歴の一部を回復するにはどうすればよいですか?

回答:


170

不足している履歴を復元しながら、私にとってはうまくいくように見える修正を説明するブログ投稿を見つけました:

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

7
コマンドのfc -R .zsh_history意味を聞いてもいいですか?私は試してみましたがman fc、それはそれを教えてくれますNo manual entry for fc、そしてどちらもfc -h使用法以上に教えてくれませんでした。ありがとう。
-kenshinji

2
fcコマンドの詳細については、こちらこちらをご覧ください。-Rオプションはそこにはありませんが、オプションの中でzsh補完リスト-R -- read history from file
ジェフリールボウスキ

誰もこのエラーの原因を知っていますか?
hugronaphor

1
@hugronaphor私の場合、ラップトップを強制的にシャットダウンする必要がありました。これは、ディスク書き込み操作中にこれを行ったときにいくつかの問題を引き起こし、破損したものの1つは、とりわけzshファイルでした。
ライアンナード

1
正しいfcドキュメントについてはman zshbuiltinszsh.sourceforge.net / Doc / Release / Shell-Builtin-Commands.htmlにもあるをご覧ください。ジェフリーが示唆したように、「 'fc -R'は指定されたファイルから履歴を読み取ります」。
マーティン

14

ランダムな文字を削除するだけでも機能する場合があります。

  • vim .zsh_history

  • おそらく終わり近くにある奇妙な文字を削除してください。(私の場合@、強制シャットダウンに続いて最後の2行目に文字列がありました)

  • :x (保存して終了)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.