自动删除备份文件


9

编辑文件时,foo.bar~ 会出现一些备份(文件以波浪号〜结尾)。如何控制它们的创建,是否可以要求从特定目录及其子目录中递归批量删除所有文件?


这里确实有两个问题。“我如何控制他们的创作”似乎是emacs.stackexchange.com/questions/33/…
shosti

Answers:


8

您可以使所有备份文件进入以下目录

(setq backup-directory-alist `(("." . "~/.emacs.bak")))

并完全关闭它

(setq make-backup-files nil)

尽管没有人会推荐。

仅对某些项目进行备份并非易事:您必须在各种挂钩中翻转该变量。

最后,要求批量删除等同于:

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

因此您最好在Shell中执行此操作。


可能会使用-delete而不是-exec,因此速度更快,因为它不会产生新进程。
Xah Lee 2014年

4

dired轻松删除目录中的所有备份文件-从中删除dired,只需键入~以标记要删除的备份文件并x执行删除。


3

来自https://www.gnu.org/software/emacs/manual/html_node/emacs/Backup-Names.html#Backup-Names

您可以自定义变量backup-directory-alist,以指定匹配特定模式的文件应备份在特定目录中。此变量适用于单备份和编号备份。一个典型的用法是添加一个元素(“。”。dir),以绝对名称dir在目录中进行所有备份;Emacs修改了备份文件名,以避免源于不同目录的同名文件之间发生冲突。或者,添加(“。”。“。〜”)将在原始文件目录的不可见子目录。〜中进行备份。Emacs会在必要时创建目录以进行备份。

如果将变量make-backup-file-name-function定义为合适的Lisp函数,则该方法将覆盖Emacs构造备份文件名的常用方法。

您还可以将EMACS设置为保留编号的备份,并且仅保留给定数量的备份,尽管这可能比每个文件仅备份一个备份更为糟糕。参见https://www.gnu.org/software/emacs/manual/html_node/emacs/Backup-Deletion.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.