在 emacs 的 dired 模式下删除目录

在 emacs 的 dired 模式下删除目录

我想在 emacs 的 dired 模式下删除一个目录。我用“d”键标记该目录,然后按“x”删除该目录。然后出现以下错误:

file-error Non-regular file is a directory <name of dir>

有什么方法可以让 emacs 删除该目录并停止其抱怨?

答案1

我不确定您使用的是哪个 emacs 版本,我的版本给出了这个错误: (file-error Removing directory Directory not empty ...) 对于空目录,它不会抱怨。

无论如何,在我拥有的版本中,有一个变量:dired-recursive-deletes它决定是否可以删除包含内容的目录。因此,您应该使用以下命令自定义此变量:

M-x customize-variable

然后当提示者指定:

dired-recursive-deletes

然后,您可以通过单击“值菜单”按钮选择行为,然后使用缓冲区顶部的按钮保存它。

答案2

简单的方法是:a. 标记 (m) 您要删除的目录;
b. 将 POINT 定位到其中一个标记文件上;
c. 键入 '!' [dired-do-command],在提示符“执行命令...”下输入“rm -Rf”
d. 键入 'g' 以刷新 dired 缓冲区,因为 emacs 不知道您更改了文件系统。

最后一步可以作为 dired 的一个选项:“在 shell 命令之后刷新缓冲区”。也许它已经是一个了。

顺便说一句,'dired-recursive-deletes' 给我一个“[不匹配]​​”

相关内容