每当我在 emacs 上编辑文件时,似乎都会创建一个同名的临时文件,并附加 ~ 。有谁知道删除工作目录中所有这些文件的快速/简单方法?
虽然这里的所有其他答案都正确解释了如何删除文件,但您应该了解发生了什么。那些以 ~ 结尾的文件是 backup 文件,由 Emacs 自动创建。它们有时很有用。如果您对这些文件感到恼火并且每次都想删除它们,那么您可以
(1)。防止创建备份文件:
(setq make-backup-files nil)
或
(2)。让它将备份文件保存在其他目录中,除非您去寻找它们,否则它们不会打扰您。我的 .emacs 中有以下内容:
(setq backup-directory-alist '(("." . "~/.emacs.d/backup"))
backup-by-copying t ; Don't delink hardlinks
version-control t ; Use version numbers on backups
delete-old-versions t ; Automatically delete excess backups
kept-new-versions 20 ; how many of the newest versions to keep
kept-old-versions 5 ; and how many of the old
)
(只有第一行至关重要。)要查看有关
backup-directory-alist
的文档,请输入 C-h v backup-directory-alist。
find . -name '*~' -exec rm {} \;
编辑:嗯...虽然这有效,但我发布它认为
rm *~
会导致shell将~
插入到用户的主目录中。事实并非如此,至少对于这台机器上的 bash 版本来说是这样 - 当然,YMMV。
某些版本的
find
有 -delete
选项:
find . -name '*~' -delete
你可以
rm *\~
更有用的是,您可以通过将其添加到 .emacs 来更改 emacs 备份目录,以便所有这些文件都存储在一个公共位置:
'(backup-directory-alist (quote (("." . "/common/backup/path"))))
来自工作目录:
$ rm *~
来自各地:
$ cd; find . -name '*~' | xargs rm -f
在 emacs 中,使用
dired
。
C-x C-f . RET ~ x y e s RET
您可以通过将以下行添加到 ~/.emacs 来永久禁止创建备份文件
(setq make-backup-files nil)
我不推荐最后一个,因为多年来 emacs 的备份文件已经救了我很多次。
rm -rf *~
您可以在 emacs 中打开该目录,用
~
标记所有备份文件,然后用 x
删除它们
在 eamcs 定向模式下:
d 标记此文件以进行删除。
u 删除该行的删除标志。
DEL 将点移动到上一行并删除该行上的删除标志。
x 删除标记为删除的文件。
# : 将所有自动保存文件(名称以“#”开头和结尾的文件)标记为删除
~ : 将所有备份文件(名称以“~”结尾的文件)标记为删除
& :标记删除具有特定名称的所有文件,这些名称表明您可以轻松地再次创建文件
。 :标记多余的数字备份文件以进行删除。任一文件的最旧和最新的几个备份文件除外;中间的有标记。
%d regexp RET : 删除所有名称与正则表达式 regexp 匹配的文件的标志。
我更喜欢使用命令实用程序
fd
(https://github.com/sharkdp/fd) 来执行此操作。
该命令将删除当前目录下所有以~结尾的文件,不包括
.emacs.d/backups/
中的文件。
首先运行不带 -X rm
的命令来查看哪些文件将被删除。
fd --glob "*~" -tf -u -E .emacs.d/backups/ -X rm
--glob "*~"
找到所有以 ~
-tf
文件类型的所有内容-u
搜索隐藏文件夹-E .emacs.d/backups/
不要在 .emacs.d/backups/
-X rm
对每个搜索结果执行rm,从而删除它