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 명령에 대한 자세한 내용은 herehere을 참조 하십시오 . -R 옵션은 존재하지 않지만 옵션 중 zsh 완성 목록-R -- read history from file
Jeffrey Lebowski

이 오류가 발생한 원인을 아는 사람이 있습니까?
hugronaphor

1
@hugronaphor 제 경우에는 랩탑을 강제 종료해야했습니다. 디스크 쓰기 작업 중에이 작업을 수행했을 때 문제가 발생했으며 손상된 항목 중 하나는 zsh 파일이었습니다.
RyanNerd

1
올바른 fc문서 man zshbuiltinszsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html 에서도 볼 수 있습니다 . Jeffrey가 제안한대로 " 'fc -R'은 주어진 파일에서 기록을 읽습니다."
Martin

14

임의의 문자를 제거하는 것만으로도 효과가 있습니다.

  • vim .zsh_history

  • 끝 부분에있을 수있는 이상한 문자를 제거하십시오. (필자의 경우 @강제 종료 후 두 번째 마지막 줄에 문자열이 있음 )

  • :x (저장 및 종료)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.