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

时间:2012-02-08 18:38:03

标签: emacs elisp

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

3 个答案:

答案 0 :(得分:2)

您可以定义两种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之后,您可以删除备份或递归执行其他操作。

答案 1 :(得分:1)

您还可以将 M-x find-name-dired与文件模式*~一起使用,仅列出备用缓冲区中的备份文件。

答案 2 :(得分:1)

如果您使用的是* nix或cygwin,则应该可以

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