【发布时间】:2010-04-21 04:48:39
【问题描述】:
每当我在 emacs 上编辑文件时,似乎都会创建一个具有相同名称的临时文件,并附加 ~。有谁知道删除工作目录中所有这些文件的快速/简单方法?
【问题讨论】:
-
如果您使用 git,为什么不将它们添加到您的
.gitignore文件中?我认为您也可以在其他 VCS 中进行类似操作。
每当我在 emacs 上编辑文件时,似乎都会创建一个具有相同名称的临时文件,并附加 ~。有谁知道删除工作目录中所有这些文件的快速/简单方法?
【问题讨论】:
.gitignore 文件中?我认为您也可以在其他 VCS 中进行类似操作。
虽然此处所有其他答案都正确解释了如何删除文件,但您应该了解发生了什么。那些以 ~ 结尾的文件是 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。
【讨论】:
.emacs 配置文件中。 (在 Unix 上,它在你的主目录中;我不确定文件在 Windows 上的位置。)或者(并且非永久),你可以将它放在任何空缓冲区中并执行 M-x eval-buffer,或者键入 M-x eval-expression 并输入/粘贴上述内容。
cwd/backup 之类的东西,也就是说,通过包含备份文件的来源目录来分隔备份文件?
find . -name '*~' -exec rm {} \;
编辑: 嗯......虽然这可行,但我发布它时认为rm *~ 会导致外壳将~ 插入到用户的主目录中。它没有,至少在这台机器上的 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匹配的所有文件的标志。
【讨论】:
rm 方法,这很容易出错。