Як виправити та відновити "файл зіпсованої історії" у 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сказати мені більше, ніж використання. Дякую.
кеншинджі

2
Детальніше про команду fc дивіться тут і тут . Опції -R там немає, але серед варіантів zsh списки заповнення,-R -- read history from file
Джеффрі Лебовський,

Хтось знає, чим могла бути викликана ця помилка?
хугронафор

1
@hugronaphor У моєму випадку сталося, що мені довелося зробити жорстке відключення свого ноутбука. Це спричинило деякі проблеми для мене, коли я це робив під час операції запису на диск, і одна з речей, що зіпсувалася, був моїм файлом zsh серед іншого.
RyanNerd

1
Про правильну fcдокументацію дивіться man zshbuiltinsтакож на веб- сайті zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html . Як запропонував Джеффрі, "'fc -R' читає історію з даного файлу".
Мартін

14

Просте видалення випадкових символів також може працювати:

  • vim .zsh_history

  • Видаліть будь-які дивні символи, які, швидше за все, були б наприкінці. (У моєму випадку у мене був рядок @у другому останньому рядку після примусового відключення)

  • :x (збереження та вихід)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.