Zsh içindeki “bozuk geçmiş dosyası” nasıl düzeltilir ve kurtarılır?


101

Yeniden başlatmanın ardından, kabuğu yüklerken bir mesaj görmeye başladım:

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

Bu durumdan nasıl kurtulabilirim ve tarihin bir kısmını potansiyel olarak nasıl kurtarabilirim?

Yanıtlar:


170

Kayıp geçmişimi geri yüklerken benim için işe yarayan bir düzeltmeyi açıklayan bir blog yazısı buldum:

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

7
Komutun ne anlama geldiğini sorabilir miyim fc -R .zsh_history? Denedim man fcve bana bunu anlattı No manual entry for fcve hiçbiri fc -hbana kullanımdan daha fazlasını söyleyemedi. Teşekkürler.
kenshinji

2
Fc komutu hakkında daha fazla bilgi için, buraya ve buraya bakın . -R seçeneği mevcut değil, fakat seçenekler arasında zsh tamamlama listeleri var.-R -- read history from file
Jeffrey Lebowski

Herkes bu hatanın neden olabileceğini biliyor mu?
hugronaphor

1
@ hugugaphor Benim durumumda dizüstü bilgisayarımı kapatmam gerekiyordu. Bu, disk yazma işlemi sırasında yaptığım gibi benim için bazı sorunlara neden oldu ve bozulan şeylerden biri de diğerlerinin yanı sıra benim zsh dosyamdı.
RyanNerd

1
Doğru fcbelgeler için man zshbuiltinsayrıca bkz . Zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html . Jeffrey tarafından önerildiği gibi, "'fc -R' verilen dosyadan tarihi okuyor".
Martin

14

Basitçe rastgele karakterleri kaldırmak da işe yarayabilir:

  • vim .zsh_history

  • Muhtemelen sona yakın olacak garip karakterleri kaldırın. (Benim durumumda @, zorla kapatmanın ardından ikinci satırda bir dizilim vardı )

  • :x (kaydet ve çık)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.