How to remove all files ending with ~ made by Emacs
Solution 1:
While all the others answers here correctly explain how to remove the files, you ought to understand what's going on. Those files ending in ~ are backup files, automatically created by Emacs. They can be useful sometimes. If you're annoyed by the files and want to delete them every time, then you either
(1). prevent the creation of backup files:
(setq make-backup-files nil)
or
(2). Have it save the backup files in some other directory, where they won't bother you unless you go looking for them. I have the following in my .emacs:
(setq backup-directory-alist '(("." . "~/.emacs.d/backup"))
backup-by-copying t ; Don't delink hardlinks
version-control t ; Use version numbers on backups
delete-old-versions t ; Automatically delete excess backups
kept-new-versions 20 ; how many of the newest versions to keep
kept-old-versions 5 ; and how many of the old
)
(Only the first line is crucial.) To see documentation about backup-directory-alist
, type C-h v backup-directory-alist.
Solution 2:
find . -name '*~' -exec rm {} \;
EDIT: Huh ... while this works, I posted it thinking rm *~
would cause the shell to interpolate ~
into the user's home dir. It doesn't, at least with the version of bash on this machine - YMMV, of course.
Some versions of find
have a -delete
option:
find . -name '*~' -delete
Solution 3:
You can just
rm *\~
More usefully, you can change the emacs backup directory so all those files are stored in a common location, by adding this to your .emacs:
'(backup-directory-alist (quote (("." . "/common/backup/path"))))
There are other options you can fiddle with
Solution 4:
From the working directory:
$ rm *~
From everywhere:
$ cd; find . -name '*~' | xargs rm -f
From within emacs, using dired
.
C-x C-f . RET ~ x y e s RET
You can suppress backup file creation permanently by adding the following line to your ~/.emacs
(setq make-backup-files nil)
I don't recommend this last one, as emacs's backup files have saved me many times over the years.
Solution 5:
rm -rf *~