편집 중이에요vi
종이의 일부를 임시 파일에 복사해 보았습니다.
.,.+40!temp.
하지만 난 썼다
.,.+40!.
따라서 파일에서 중요한 모든 항목이 제거됩니다(40줄 제외). 원래 가지고 있던 파일(약 30페이지)을 검색할 수 있는 방법이 있습니까? 아니면 처음부터 시작해야 합니까?
답변1
사용한 명령이 익숙하지 않습니다. 아직 종료하지 않았다면 변경 사항을 취소해야 합니다 vi
.U
그렇지 않으면 예상 값의 내림차순으로 정렬합니다.
경우에 따라 파일의 이전 버전이 다음 이름으로 저장됩니다
filename.ext~
(본인의 경우가 아닐 수도 있고 게시하지 않았지만 시도해 볼 가치가 있음).파일과 교체된 이전 버전은 다음을 사용하여 복구할 수 있습니다.확장 삭제, 파일 시스템에서 허용하는 경우(ext3 또는 ext4). 스왑만 복구 가능한 경우
strings
대량의 텍스트를 추출하는 데 사용할 수 있습니다. 여전히 다시 조립해야 하지만 처음부터 다시 작성하는 것과는 다릅니다.그렇지 않은 경우 일부 핵심 단어나 문구를 기억하면 대부분의 텍스트를 복구할 수 있습니다. 이는 다소 긴 작업이 될 수 있습니다. 로컬 디스크 여유 공간을 덮어쓸 위험이 없도록 전체 파티션을
strings
경유 로 필터링dd
하고 출력을 다른 시스템으로 보낼 수 있습니다(다른 여유 파티션이 있는 경우 반드시 이를 사용하십시오).ssh
마찬가지로 시스템이 재부팅되지 않았고 루트 액세스 권한이 있으며 /proc/kcore 의사 파일의 크기가 적당한 경우 여기에서 원시 텍스트를 추출하여
strings
파일에 덤프하는 데 사용할 수 있습니다. 그러면grep
그 사람은 당신의 친구가 될 것입니다. 가능한,다른 방법메소드를 사용하여 메모리에 액세스할 수 있습니다.
답변2
아직 아무것도 저장하지 않았다면 실행 취소 키 "U"를 누르세요.
스왑 파일을 확인해 볼 수도 있습니다. yourfilename.swp
or와 동일한 디렉터리에 or로 이름을 지정해야 합니다 . 반드시 이름이 다음으로 시작하는 대소문자를 사용하세요..yourfilename.swp
/var/tmp
ls -la
.
.
복사본을 만들고 열어 내용을 살펴보세요.
답변3
세션이 vi
아직 열려 있는 경우 이 명령은 :e!
파일을 마지막으로 저장된 버전으로 즉시 되돌립니다(방금 열어서 편집한 경우 파일을 열었을 때 본 것과 동일한 버전으로 되돌립니다).
U
(실행 취소)는 변경 사항을 저장하더라도 작동하지만 원하는 버전에 도달할 때까지 모든 작업을 실행 취소해야 합니다(실행 취소 작업에 제한이 있는지 지금은 기억이 나지 않습니다... 또는 얼마나 많은지)