จะแก้ไขและกู้คืน“ ไฟล์ประวัติเสียหาย” ใน 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
เจฟฟรีย์ Lebowski

ใครรู้ว่าข้อผิดพลาดนี้อาจเกิดจากอะไร
hugronaphor

1
@hugronaphor ในกรณีของฉันมันเป็นสิ่งที่ฉันต้องทำอย่างหนักเพื่อปิดแล็ปท็อปของฉัน นี่เป็นสาเหตุของปัญหาบางอย่างสำหรับฉันเนื่องจากฉันทำสิ่งนี้ในระหว่างการดำเนินการเขียนดิสก์และสิ่งหนึ่งที่ได้รับความเสียหายคือไฟล์ zsh ของฉันในสิ่งอื่น ๆ
RyanNerd

1
สำหรับการที่ถูกต้องfcเอกสารดูman zshbuiltins, นอกจากนี้ยังมีที่zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html ตามที่เจฟฟรีย์แนะนำ "" fc -R "อ่านประวัติจากไฟล์ที่กำหนด"
Martin

14

เพียงแค่ลบตัวอักษรแบบสุ่มก็อาจใช้งานได้:

  • vim .zsh_history

  • เอาตัวละครแปลก ๆ ออกซึ่งอาจใกล้ถึงจุดสิ้นสุด (ในกรณีของฉันฉันมีสายอักขระ@ในบรรทัดสุดท้ายที่สองหลังจากปิดระบบบังคับ)

  • :x (บันทึกและออก)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.