如何递归删除emacs备份文件?

如何递归删除emacs备份文件?,emacs,elisp,Emacs,Elisp,在emacs中,在Dired模式下,我可以使用~命令将所有emacs备份标记为删除。有没有一种方法可以递归地标记它们,这样我就可以删除当前目录和所有子目录中的所有备份?您可以定义两种dired:flat和recursive。例如: (defun op-i:dired (rec) "customized dired: will display directory recursively when called with an argument" (interactive "P") (l

在emacs中,在Dired模式下,我可以使用~命令将所有emacs备份标记为删除。有没有一种方法可以递归地标记它们,这样我就可以删除当前目录和所有子目录中的所有备份?

您可以定义两种dired:flat和recursive。例如:

(defun op-i:dired (rec)
  "customized dired: will display directory recursively when called with an argument"
  (interactive "P")
  (let ((dir (car (find-file-read-args "Dired: " nil))) 
        (opts (if rec (read-string "options: " "-lhAR") "-lhA")))
    (if (file-directory-p dir) (dired dir opts))))

(define-key (current-global-map) (kbd "C-x C-d") 'op-i:dired)
然后使用
C-u C-x C-d
调用此函数将递归显示dired,而使用
C-x C-d
将照常执行此操作

递归显示dired后,您可以删除备份或递归执行其他操作。

您还可以使用文件模式
*~
的M-x
查找名称dired
仅列出dired缓冲区中的备份文件。

如果您使用*nix或

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

看一看:我有点想从Emacs内部做这件事。有时,我被困在Windows中,而且我并不总是有bash/find等可用的工具。如果我能简单地在emacs中完成,我的工作流程会得到改进。
M-x
答案非常适合OP。在我的Windows PC上似乎不起作用。我需要配置其他东西吗?啊,我很抱歉;这也需要在Windows PC上安装一个Unix风格的
find
。忘了点吧!。否则我喜欢这个。