什么是#file#和file~我怎样才能摆脱它们?

时间:2012-08-20 03:01:34

标签: unix emacs

我最初在我的目录中有三个文件:makefilereadme.txthashtable.c,我在emacs中编写代码。我注意到已创建了一些新文件:#hashtable.c##readme.txt#hashtable.c~makefile~。我想知道这些文件是什么。这些是否重要,如果没有,我如何告诉emacs停止制作它们?我也很好奇为什么readme.txt没有得到波浪文件而makefile没有得到一个清晰的文件。

4 个答案:

答案 0 :(得分:23)

包含~的文件是保存文件时自动创建的备份文件。 # readme.txt #是当前正在编辑/使用的文件(即自动保存版本)。当你正常退出emacs时,它通常会消失(与~文件不同)(如果它崩溃或被杀死,#文件可能会留在那里)。

您可能会发现有关emacs backup files感兴趣的此页面,以及此问题:How do I control how Emacs makes backup files?

您可以使用以下方法阻止创建备份文件:

(setq make-backup-files nil)

答案 1 :(得分:2)

对于#files#,您必须从终端rm "#file#"进行操作,因为rm #file#无法正常工作。 对于~file,您只需数字rm ~file

答案 2 :(得分:1)

我建议安装no-littering。它将自动将备份文件(file~)放入~/.emacs.d/var/backup/中。它对自动保存(#file#并没有任何作用,但是有一些关于将这些文件放在自述文件中指定目录中的说明:

(setq auto-save-file-name-transforms
      `((".*" ,(no-littering-expand-var-file-name "auto-save/") t)))

这一切都不会阻止Emacs创建这些文件,但是我假设大多数人实际上都想要这些文件(以防万一发生崩溃),但又不希望它们散布在整个文件系统中。

答案 3 :(得分:0)

也许您可以尝试:

find . -name \\#*\\# | xargs rm

警告:这将删除子目录中匹配的那些文件。