Emacs: Turn Off Auto Backup~

By Xah Lee. Date: . Last updated: .

disable emacs automatic backup~ file

Emacs by default automatically creates backup files in the same dir, and with filename ending in TILDE ~.

To turn it off, put this in your Emacs Init File:

(setq make-backup-files nil)

configure backups into one folder

Put this in your Emacs Init File:

;; backup into one flat dir
(setq backup-directory-alist '(("." . "~/.emacs.d/backup")))
;; example
;; file
;; /A/B/C/ff.txt
;; backup root dir
;; ~/.emacs.d/backup
;; backup at
;; ~/.emacs.d/backup/A!B!C!ff.txt~

stop emacs backup changing the file's creation date of the original file

Put this in your Emacs Init File:

(setq backup-by-copying t)

Explanation: when emacs does a backup, by default it renames the original file into the backup file name, then create a new file and insert new file content into it. This effectively destroys the creation date of your file. (If a file is created in 2001, and you modified it today, the file's creation date will become today.

Note: unixes (including Linux and BSD) do not record file creation date, so this doesn't matter. (ctime is not creation date.) Microsoft Windows and Mac OS X do record file creation date.).

All Configurations for Backup

Here are all configurations for backup.

(setq make-backup-files t)

;; make multiple versions, ending in ~1~ ~2~ etc
(setq version-control t)

;; make sure hard link and creation date, owner, etc is preserved
(setq backup-by-copying t)

;; make backup even in git controlled dir
(setq vc-make-backup-files t)

;; silently delete old backup
(setq delete-old-versions :no) ; default nil
;; t means silent delete
;; nil means ask
;; other values means do not delet

;; (setq kept-old-versions 2) ; default 2
;; (setq kept-new-versions 2) ; default 2

;; function that decide a file should be backed up
;; (setq backup-enable-predicate 'normal-backup-enable-predicate )

;; a alist (regex . dir) to decide where to place backup
;; (setq backup-directory-alist '(("." . "~/.emacs.d/backup")))

Reference

Emacs: auto save, backup