On most operating systems, rewriting a file automatically destroys all record of what the file used to contain. Thus, saving a file from Emacs throws away the old contents of the file---or it would, except that Emacs carefully copies the old contents to another file, called the backup file, before actually saving.
For most files, the variable make-backup-files
determines
whether to make backup files. On most operating systems, its default
value is t
, so that Emacs does write backup files.
For files managed by a version control system (see Version Control), the variable vc-make-backup-files
determines whether
to make backup files. By default, it is nil
, since backup files
are redundant when you store all the previous versions in a version
control system. See VC Workfile Handling.
The default value of the backup-enable-predicate
variable
prevents backup files being written for files in `/tmp
'.
At your option, Emacs can keep either a single backup file or a series of numbered backup files for each file that you edit.
Emacs makes a backup for a file only the first time the file is saved from one buffer. No matter how many times you save a file, its backup file continues to contain the contents from before the file was visited. Normally this means that the backup file contains the contents from before the current editing session; however, if you kill the buffer and then visit the file again, a new backup file will be made by the next save.
You can also explicitly request making another backup file from a buffer even though it has already been saved at least once. If you save the buffer with C-u C-x C-s, the version thus saved will be made into a backup file if you save the buffer again. C-u C-u C-x C-s saves the buffer, but first makes the previous file contents into a new backup file. C-u C-u C-u C-x C-s does both things: it makes a backup from the previous contents, and arranges to make another from the newly saved contents, if you save again.
Saving Interlocking