2010-04-21 67 views
35

每当我在emacs上编辑文件时,似乎临时文件是用相同的名称创建的,附加了〜。有没有人知道一个快速/简单的方法来删除工作目录中的所有这些文件?如何删除所有以〜Emacs作结尾的文件

+0

如果您使用git,为什么不将它们添加到'.gitignore'文件中?我认为您也可以在其他VCS中以类似的方式进行操作。 – 2017-08-12 10:45:51

回答

79

删除当其他的答案在这里正确地介绍了如何删除这些文件,你应该明白这是怎么回事。那些以〜为结尾的文件是备份文件,由Emacs自动创建。他们有时可能会有用。如果你对这些文件感到厌烦并且想要每次删除它们,那么你要么是

(1)。防止备份文件的创建:

(setq make-backup-files nil) 

(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 
) 

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

+0

上述命令应该如何输入?无论是shell还是Meta-x似乎都不适合我...... – 2012-08-20 21:36:47

+1

@OcastaEshu:这应该放在你的'.emacs'配置文件中。 (在Unix上,它在你的主目录中;我不确定该文件在Windows上的位置)。或者(非永久性的),你可以把它放在任何空的缓冲区中并执行Mx eval-buffer,或者输入Mx eval-expression并键入/粘贴上面的内容。 – ShreevatsaR 2012-08-21 02:58:54

+2

您也可以通过Mx进行所有这些更改 - > customize-group - >备份 – 2013-10-30 23:44:02

5
rm -rf *~ 
+0

这不处理子目录 – dzen 2010-04-21 06:22:17

+1

您可以通过键入M-!来从Emacs中调用上述命令。第一。 – offby1 2010-04-21 15:18:41

26
find . -name '*~' -exec rm {} \; 

编辑:咦......而这个作品,我张贴想rm *~将导致外壳内插~到用户的主目录。它没有,至少在这台机器上的bash版本 - YMMV,当然。

find有些版本会有-delete选项:

find . -name '*~' -delete 
+0

第二个在Mountain Lion上的mac上运行良好。谢谢。 – pjammer 2013-02-27 16:26:12

+0

'发现。 -name'*〜'-delete'在Ubuntu上工作正常 – 2017-05-29 07:25:50

+0

如何在子目录中递归地执行 – vijayst 2017-06-30 15:53:47

9

你可以只

rm *\~ 

更有效,你可以改变,因此所有这些文件都存储在一个公共位置emacs的备份目录,将此添加到您的.emacs中:

'(backup-directory-alist (quote (("." . "/common/backup/path")))) 

other options you can fiddle with

+2

+1提到存储备份文件的好习惯。 – 2010-04-21 07:12:18

6

从工作目录:

$ rm *~ 

来自世界各地:

$ cd; find . -name '*~' | xargs rm -f 

从emacs的范围内,使用dired

C-x C-f . RET ~ x y e s RET 

可以通过添加下面一行到你的〜/的.emacs

(setq make-backup-files nil) 

我不建议这最后一个,因为emacs的的备份文件有救了我很多次永久禁止备份文件创建这些年来。

+2

+1为直接的方式。 – 2010-04-21 07:14:10

4

您可以在Emacs中打开该目录,国旗~所有备份文件,然后用x

2

在eamcs直接模式下:

d将此文件标记为删除。

u移除此行上的删除标志。

DEL将指针移到上一行并删除该行上的删除标志。

x删除标记为删除的文件。

#:旗所有自动保存文件(文件,文件的名字开始与`#“结尾)为删除

〜:旗所有备份文件(文件名以'结尾〜”)为删除

&:用于删除具有特定类型名称的所有文件的标志,建议您可以再次轻松创建文件的名称

。 :标记多余的数字备份文件以进行删除。任何一个文件的最旧和最新的少数备份文件是免除的;中间的人被标记。

%d regexp RET:标记删除名称与正则表达式正则表达式匹配的所有文件。

+0

使用创建它的软件删除这些文件是有意义的。我不喜欢'rm'方法,这很容易出错。 – smonff 2015-09-18 10:33:04

相关问题