使用shell脚本杀死vim进程会留下.swp文件

Asf*_*bar 6 linux vim bash shell

我开发了一个脚本来杀死处理xxx.log文件的所有'vim'进程:

ps -ef|grep vim|grep xxx.log|awk '{print $2}'|xargs kill -9
Run Code Online (Sandbox Code Playgroud)

但是,每个vim实例都会保留.swp(swap)文件.如何在同一个脚本中删除交换文件,或者其他一些简短的解决方案,而无需搜索交换位置等?

Ing*_*kat 13

掉落-9kill; 这会将TERM(inate)信号发送给Vim,允许它清理并删除交换文件(至少它在Ubuntu上为我做了).

通过使用-9/ KILL,您不会给该过程提供清理的机会.这应仅用于绝对必要的情况(例如,当过程挂起或无限循环并且不再对外部信号作出反应时).


Mar*_*ler 2

由于交换文件包含您删除的名称,因此您也应该能够通过适当的操作找到它。

然而,杀死一个交互式编辑器vim在很多层面上听起来都是错误的。你真的应该考虑不这样做。在什么情况下是可取的?