Next: Backup Deletion, Up: Backup [Contents][Index]

#### 18.3.2.1 Single or Numbered Backups

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`

  Make numbered backups for files that have numbered backups already. Otherwise, make single backups. This is the default.

`t`

  Make numbered backups.

`never`

  Never make numbered backups; always make single backups.

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`.

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.

Next: Backup Deletion, Up: Backup [Contents][Index]