vi에서 파일을 편집하면 저장을 하기 전까지의 모든 내용은 메모리에 일시 저장됩니다. 간혹 초심자의 경우 vi로 파일 편집 중 터미널 자체를 종료하는 경우가 있습니다. 이때 해당 파일이 저장되지 않았으므로 vi는 변경된 내용을 유지하기 위해 스왑 파일을 생성합니다.

  가령 a.txt 파일을 편집하던 중 vi를 제대로 종료하지 않은 상태로 터미널을 종료한 경우라면 .a.txt.swp와 같은 히든 파일 형태의 스왑 파일을 생성하여 복구 기능을 제공합니다.



  이러한 스왑 파일은 이후 해당 파일을 불러들여 편집할 경우 해당 파일 복구를 위해 다음과 같은 화면을 제시하게 됩니다.


  이렇게 .a.txt.swp 파일이 존재함을 알리는 메시지가 보일 때, 해당 파일을 복구하는 방법은 3가지 방법이 존재합니다. 위 그림은 vi를 사용하던 터미널을 강제로 종료한 경우이거나 해당 파일을 다른 사용자가 사용 중일 경우에 나타나는 화면입니다.

  먼저 ps aux | grep "vi 파일명" 명령어로 다른 사용자가 사용 중인지 확인해 보시기 바랍니다. 만약 다른 사용자가 해당 파일을 사용 중이라면, 끝내기 ((Q))를 선택하시기 바랍니다.

  vi 사용 중 터미널 강제 종료로 인해 발생한 메시지에 대한 대처방안은 다음과 같습니다.
  • 해당 화면에서 복구 ((R))를 선택합니다(r 입력).
  • 해당 화면에서 그냥 고치기((E))를 선택한 다음(e 입력), :recover 를 통해 복구합니다.
  • vim -r a.txt 명령어로 해당 파일을 불러들입니다.

  3가지 방법 중 한가지를 택해 복구한 후 저장 및 종료(:wq)한 후 스왑 파일(.a.txt.swp)을 삭제합니다.

  만약에 파일을 복구한 후 저장하지 않고 또 다시 터미널 자체를 종료할 경우 이에 해당하는 스왑파일을 순차적으로 더 생성하게 됩니다(.swp → .swo → .swn → .swm → ...). 이런 상황의 경우 복부 방법은 동일하지만(어떤 스왑파일을 사용할 것인지 선택하는 메뉴가 하나 더 나옴), 파일을 복구한 후 .a.txt 로 시작하는 모든 스왑 파일을 삭제해야합니다.




[출처]

레드햇 리눅스 9 상세보기

'OS > Linux' 카테고리의 다른 글

리눅스 한글 입력  (0) 2009.11.28
우분투] 설치 후 초기화 과정  (0) 2009.11.28
vi 명령어  (0) 2009.11.22
vi편집기 환경설정(vimrc)  (0) 2009.11.08
시스템정보 명령어  (0) 2009.10.21
Posted by 야동우
,