Ponga todas las copias de seguridad en una carpeta de copia de seguridad

15

¿Cómo puedo configurar Emacs para que todas las copias de seguridad se coloquen en una carpeta de copia de seguridad? p.ej/MyEmacsBackups

Luke Shimkus
fuente
Tenga en cuenta que esto podría tener el efecto secundario involuntario de dejar información confidencial persistente en su máquina, incluso después de mover / eliminar los originales. Sería recomendable purgar esta carpeta de copia de seguridad ocasionalmente. Estos archivos de copia de seguridad también pueden tener permisos diferentes a los originales.
nispio

Respuestas:

17

Echa un vistazo backup-directory-alist, que te permite establecer ubicaciones de copia de seguridad por expresiones regulares de archivo. Para que todo vaya a un directorio, intente algo como:

(setq backup-directory-alist '(("." . "~/MyEmacsBackups")))

Para los verdaderamente paranoicos (como yo), también hay una copia de seguridad de cada guardado , que (como su nombre indica) realiza una copia de seguridad de sus archivos cada vez que se guardan en una ubicación conveniente. Esto proporciona una capa adicional de protección sobre el control de versión tradicional, por ejemplo, para aquellos casos en los que borra accidentalmente su directorio de trabajo sin registrar algo.

shosti
fuente
12

El siguiente es un código rápido de mi .emacs. No solo coloca las copias de seguridad en un directorio específico, sino que también guarda automáticamente, y hace lo mismo para los archivos de vagabundo para que no se coloquen en el sistema remoto.

;; Put backup files neatly away                                                 
(let ((backup-dir "~/tmp/emacs/backups")
      (auto-saves-dir "~/tmp/emacs/auto-saves/"))
  (dolist (dir (list backup-dir auto-saves-dir))
    (when (not (file-directory-p dir))
      (make-directory dir t)))
  (setq backup-directory-alist `(("." . ,backup-dir))
        auto-save-file-name-transforms `((".*" ,auto-saves-dir t))
        auto-save-list-file-prefix (concat auto-saves-dir ".saves-")
        tramp-backup-directory-alist `((".*" . ,backup-dir))
        tramp-auto-save-directory auto-saves-dir))

(setq backup-by-copying t    ; Don't delink hardlinks                           
      delete-old-versions t  ; Clean up the backups                             
      version-control t      ; Use version numbers on backups,                  
      kept-new-versions 5    ; keep some new versions                           
      kept-old-versions 2)   ; and some old ones, too                           
Jorgen Schäfer
fuente
1
;; put all backup files into ~/MyEmacsBackups
(setq backup-directory-alist '(("." . "~/MyEmacsBackups")))
(setq backup-by-copying t)
CyberSnoopy
fuente
¿Qué beneficio tiene tu respuesta sobre la de shosti?
Gilles 'SO- deja de ser malvado'
0

Pon esto en tu archivo init. Cambie la ruta al directorio de respaldo elegido.

;;backup directory
(setq backup-directory-alist '(("" . "~/.emacs.d/emacs_backup")))
Nsukami _
fuente