首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何删除带有感叹号的文件!使用emacs的delete-file

如何删除带有感叹号的文件!使用emacs的delete-file
EN

Stack Overflow用户
提问于 2009-10-27 13:29:52
回答 2查看 1.3K关注 0票数 0

我正在尝试让emacs的delete-file函数删除名称中带有感叹号的文件。

特殊的用例是,我设置emacs将所有备份文件保存在一个目录中,并删除旧的备份文件。但是,当所有备份文件都放在一个目录中时,目录分隔符/将替换为!

当对名称中带有感叹号的文件调用delete-file时,它将返回零,并且不会删除该文件。它不会发出任何错误信号。通常,delete-file返回nil。无论如何,emacs的备份系统使用delete-file进行删除,我不希望仅仅为了更改一行而重新定义整个函数。

我尝试了反斜杠的感叹号和shell引号的文件名字符串,但都不起作用。我发现我的配置中有什么东西导致了这个问题,但我还没有弄清楚是什么原因。我已经将问题的根源追踪到我的自定义system-move-file-to-trash函数,现在我必须对其进行调试。

那么,我如何才能让它工作呢?

Emacs版本: GNU Emacs 23.1.50.1

emacs-快照:已安装: 1:20090730-1~jaunty1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-27 15:04:39

我找到了答案。我的自定义system-move-file-to-trash函数在文件名上不适当地调用了shell-quote-argument,删除文件将自动使用该函数。显然,使用call-process运行命令的参数不需要用外壳引用。

票数 1
EN

Stack Overflow用户

发布于 2009-10-27 13:39:00

代码语言:javascript
运行
复制
M-x delete-file

然后只需输入文件名,不要转义任何内容,只需输入文件名,

代码语言:javascript
运行
复制
!home!blah!filename

它就是这样工作的。lisp调用也是如此,

代码语言:javascript
运行
复制
(delete-file "!home!blah!filename")
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1628908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档