백업 파일, 원하는 곳에 원하는 만큼

1 minute read

같은 디렉토리에 ~ 꼬리를 달아서 백업 파일을 남기는 게 기본 설정이다. 안전빵이니 백업을 남기는 건 좋은데, 지저분하다. 조금만 쪼물락 거리면 원하는 곳에 원하는 만큼 남길 수 있다.

백업 파일을 저장하는 디렉토리

(add-to-list 'backup-directory-alist '("." . "~/.emacs-saves"))

백업 디렉토리 리스트 원소(element)는 (REGEXP . DIRECTORY) 이다. 정규식을 넣어서 백업 디렉토리를 여러 개 정의할 수 있다. 세심하네. 백업 마니아인가 보다. 난 이런 구분이 필요 없어서 깡그리 한 폴더에 넣는다.

백업을 여러개 남길 수 있나?

(setq delete-old-versions t
      kept-old-versions 2
      kept-new-versions 2
      version-control t)

없을 리가 없지. 이 설정보고 좀 놀랐다. 이런 섬세한 설정은 처음 봤다. 백업 마니아가 작정하고 방망이 깎듯이 구현할 것 같다.

코드를 이해하려면 old-versionsnew-versions 가 의미하는 걸 알아야 한다. 난 처음에 좀 헷갈렸다. 테스트를 해보니 알겠더라. 네이밍을 탓하려고 했지만, 더 나은 이름이 안 떠오른다. 이렇게 생각하면 간단하다. 백업 파일을 저장 시간으로 정렬했을 때, 양쪽 끝을 old, new 라고 부른다. 이걸 몇 개 남길지 결정한다. 즉, 백업 파일이 6개 생기면 이 글 처음에 나오는 사진처럼 1, 2, 5, 6이 남는다.

old-versions 를 남기는 게 독특하다. 왜 남기려고 할까? 생각해보니 좋은 결정이다. 이런 상황이 벌어진다면? 망했다. 최근에 만들어진 백업이 도움 안 된다. 뭔가 지워버렸는데, 예전 백업을 찾을 수가 없다. 제길. 백업 파일 개수 유지 때문이네. 이런 상황에서 중간 백업은 날아갔지만, 최초 백업은 동아줄이 될 수 있다.

delete-old-versionst 로 세팅하지 않으면 백업 파일 개수가 넘을 때마다 묻는다. 지울 거냐고. 귀찮으니 그냥 지우자.

참조

C-x C-s C-x C-c