Unix 什么是“文件”和“文件”?我怎样才能摆脱它们?

Unix 什么是“文件”和“文件”?我怎样才能摆脱它们?,unix,emacs,Unix,Emacs,我最初在我的目录中有三个文件:makefile、readme.txt和hashtable.c,我正在emacs中编写代码。我注意到一些新文件:#hashtable.c#、#readme.txt#、hashtable.c~和makefile~已经创建。我想知道这些文件是什么。这些重要吗?如果不重要,我如何告诉emacs停止制造它们?我也很好奇为什么readme.txt没有波浪形文件,而makefile没有尖锐的文件 带有~的文件是在保存文件时自动创建的备份文件。#readme.txt#是当前正在编

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

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

您可能会在本页找到感兴趣的内容,以及以下问题:

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

(setq make-backup-files nil)
对于#文件#您必须从终端执行
rm“#file#”
,因为
rm#file#
不起作用。 对于~file,您只需将
rm~文件

数字化即可,我建议您安装。它会自动将备份文件(
file~
)放入
~/.emacs.d/var/backup/
中。它对自动保存没有任何作用(
#file#
),但是有一个关于将这些文件放在自述文件中指定目录中的注意事项:

(setq auto-save-file-name-transforms
      `((".*" ,(no-littering-expand-var-file-name "auto-save/") t)))
这两种情况实际上都不会阻止Emacs创建这些文件,但我假设大多数人确实想要这些文件(以防崩溃),但不希望它们散落在整个文件系统中。

也许您可以尝试:

find-名称\\\\\\\\\\\\\\\\| xargs rm


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

这是有道理的。我很困惑,因为我使用了
kill-9####
来清除emacs,但我想这样关闭它并不会删除临时文件。永远不要使用
kill-9
,除非您已经验证了进程不能通过其他方式终止。通常,试着用
kill
,然后可能在几秒钟后
kill-2
。然而,Emacs有一个退出的按键<安德鲁:它们不是“临时文件”(在任何情况下都会存在于操作系统的tmp目录中)。自动保存文件的存在告诉您,当您强制杀死Emacs时,这些文件有未保存的更改。也不要禁用备份(如果愿意,您可以将Emacs配置为放置在其他位置,但出于显而易见的原因,禁用备份不是一个好主意)。对于像我这样的N00B总数,这在~/.Emacs中出现,它可能已经存在,也可能不存在。堆栈溢出是一个解决编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。