.zshrc
수백 줄의 구성이 포함된 명령을 잘못 실행한 후 실수로 내 파일을 덮어썼습니다 . 하지만 이 사건 이전에 zsh가 열려 있던 터미널이 5개나 남아 있으므로 영향을 받지 않습니다. 하지만,내가 여는 새로운 껍질전체 zsh 구성이 손실되고 이에 대한 백업이 없습니다.
이 5개의 터미널을 계속 사용할 수도 있지만, 어떤 형태로든 방법이 있어야 한다고 생각합니다.메모리에서 zshrc 추출, 표면적으로는 zsh가 실행될 때 파일을 메모리에 로드하고 종료될 때까지 거기에 저장합니다. 나는 이것을 시도했습니다 :
sudo dd if=/dev/mem bs=1M count=256|hexdump -C > ramfile
하지만 내가 얻은 것은 내 zshrc와 관련 없는 데이터뿐입니다.
어떤 해결책이라도 대단히 감사하겠습니다.
답변1
디렉토리 사용을 제안했지만 /proc/PID/fd/
zsh는 구문 분석 후 해당 구성을 가리키는 파일 설명자를 닫습니다. 따라서 내 추측으로는 원래 형식의 파일이 사라졌다는 것입니다.
그러나 zsh의 현재 구성을 덤프하여 재구축하는 데 도움이 될 수 있는 방법이 있습니다.이 다른 질문의 대답이 떠오릅니다.
모든 키 바인딩:
for m ($keymaps) bindkey -LM $m
모든 ZLE 사용자 위젯
zle -lL
모든 zstyles:
zstyle -L
로드된 모듈:
zmodload -L
모든 변수:
typeset -p +H -m '*'
모듈이 로드 되면
zsh/parameters
별칭, 옵션, 함수도 포함됩니다.
답변2
자가 답변
덮어쓴 zsh를 복구할 때 발견한 몇 가지 다른 사항:
zshrc 사본이 아직 존재하는지 확인하십시오.
내 경우에는 이런 일이 발생하지 않았지만 우연히 .zshrc
어딘가의 버전이 있는 경우(특히 선택한 코드 편집기가 파일을 특정 위치에 자동 저장하는 경우)작은어딘가에 아직 존재할 가능성이 있습니다. 찾으려면 다음을 실행하세요.
sudo find . -name ".zshrc"
다음 특정 위치를 살펴보세요.
- Vim/Vi 사용자의 경우(구성에 따라 다름 - 또는 가 포함될
/var/tmp
수~/.vim/sessions
있음~/.local/share/nvim/swap
) - Atom 사용자의 경우 -
~/.atom/recovery
~/.zshrc~
Emacs 사용자의 경우 - 기본적으로 available 이라는 파일이 있을 수 있습니다.- 일반적인 -
/tmp
수동으로 추가된 경로 복구
이 스크립트는 다음에 추가된 모든 디렉터리를 인쇄합니다 $PATH
.
import subprocess
paths = subprocess.check_output("echo $PATH", shell=True, text=True)
list = paths.split(":")
for item in list:
print("export PATH=" + item + ":$PATH")
특정 매개변수 복구
기본 편집기( ) 및 호출기( ) 와 같이 필요한 매개변수를 통해 set
모든 매개변수를 나열하는 데 사용합니다 .grep
EDITOR
PAGER
답변3
나는 같은 문제가있었습니다. 다행히 ~/.zshrc.backup 파일에는 내 .zshrc 파일의 이전 내용이 포함되어 있습니다. 복원할 내용을 복사했습니다. 이전 .zshrc가 실행 중인 상태에서 탭을 닫지 않은 경우 ~/.zshrc.backup을 확인하는 것이 좋습니다. (맥 OS)
답변4
저도 같은 문제가 있었고 파일의 정확한 문자열을 기억할 수 있었습니다. 내용을 찾고 복구하기 위해 다음을 사용했습니다.
grep -i -a -B100 -A100 'text in the deleted file' /dev/sda1