如何删除以Emacs制作的所有以〜为结尾的文件

jhc*_*hen 40 emacs backup

每当我在emacs上编辑文件时,似乎都会创建一个临时文件,其名称与〜相同.有没有人知道删除工作目录中所有这些文件的快捷方式?

Shr*_*saR 91

虽然这里的所有其他答案都正确地解释了如何删除文件,但您应该了解正在发生的事情.那些以〜结尾的文件是备份文件,由Emacs自动创建.它们有时很有用.如果您对这些文件感到恼火,并希望每次都删除它们,那么您也可以

(1).阻止创建备份文件:

(setq make-backup-files nil)
Run Code Online (Sandbox Code Playgroud)

要么

(2).它将备份文件保存在其他目录中,除非您去寻找它们,否则它们不会打扰您.我的.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
  )
Run Code Online (Sandbox Code Playgroud)

(只有第一行至关重要.)要查看文档backup-directory-alist,请键入C-h v backup-directory-alist.

  • 您还可以通过Mx - > customize-group - > backup进行所有这些更改 (2认同)

Bri*_*ach 30

find . -name '*~' -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

编辑:嗯...虽然这有效,我发布它认为rm *~会导致shell插入~用户的主目录.它至少与这台机器上的bash版本无关 - 当然是YMMV.

有些版本find有一个-delete选项:

find . -name '*~' -delete
Run Code Online (Sandbox Code Playgroud)


Mic*_*zek 9

你可以

rm *\~
Run Code Online (Sandbox Code Playgroud)

更有用的是,您可以更改emacs备份目录,以便将所有这些文件存储在公共位置,方法是将其添加到.emacs:

'(backup-directory-alist (quote (("." . "/common/backup/path"))))
Run Code Online (Sandbox Code Playgroud)

还有,你可以拨弄其他选项

  • +1提及存储备份文件的良好做法. (2认同)

Dal*_*und 6

从工作目录:

$ rm *~
Run Code Online (Sandbox Code Playgroud)

从各处:

$ cd; find . -name '*~' | xargs rm -f
Run Code Online (Sandbox Code Playgroud)

从emacs内部,使用dired.

C-x C-f . RET ~ x y e s RET
Run Code Online (Sandbox Code Playgroud)

您可以通过在〜/ .emacs中添加以下行来永久禁止创建备份文件

(setq make-backup-files nil)
Run Code Online (Sandbox Code Playgroud)

我不推荐这最后一个,因为emacs的备份文件多年来已经多次保存了我.


Rém*_*émi 5

您可以在emacs中打开目录,标记所有备份文件,~然后使用删除它们x