Next: Backup Deletion, Up: Backup
When Emacs makes a backup file, its name is normally constructed by appending ‘~’ to the file name being edited; thus, the backup file for eval.c would be eval.c~.
If access control stops Emacs from writing backup files under the usual names, it writes the backup file as ~/.emacs.d/%backup%~. Only one such file can exist, so only the most recently made such backup is available.
Emacs can also make numbered backup files. Numbered backup file names contain ‘.~’, the number, and another ‘~’ after the original file name. Thus, the backup files of eval.c would be called eval.c.~1~, eval.c.~2~, and so on, all the way through names like eval.c.~259~ and beyond.
The variable version-control
determines whether to make
single backup files or multiple numbered backup files. Its possible
values are:
nil
t
never
The usual way to set this variable is globally, through your init file
or the customization buffer. However, you can set
version-control
locally in an individual buffer to control the
making of backups for that buffer's file (see Locals). You can
have Emacs set version-control
locally whenever you visit a
given file (see File Variables). Some modes, such as Rmail mode,
set this variable.
If you set the environment variable VERSION_CONTROL, to tell
various GNU utilities what to do with backup files, Emacs also obeys the
environment variable by setting the Lisp variable version-control
accordingly at startup. If the environment variable's value is ‘t’
or ‘numbered’, then version-control
becomes t
; if the
value is ‘nil’ or ‘existing’, then version-control
becomes nil
; if it is ‘never’ or ‘simple’, then
version-control
becomes never
.
You can customize the variable backup-directory-alist
to
specify that files matching certain patterns should be backed up in
specific directories. This variable applies to both single and
numbered backups. A typical use is to add an element ("."
.
dir)
to make all backups in the directory with absolute name
dir; Emacs modifies the backup file names to avoid clashes
between files with the same names originating in different
directories. Alternatively, adding, ("." . ".~")
would make
backups in the invisible subdirectory .~ of the original file's
directory. Emacs creates the directory, if necessary, to make the
backup.
If you set the variable make-backup-file-name-function
to
a suitable Lisp function, you can override the usual way Emacs
constructs backup file names.