首先使用 Vim 编辑一个文件,比如 /tmp/A。
假设vim进程是唯一访问/tmp/A的进程,则使用“ctrl+z”暂停该进程,并执行
fuser /tmp/A
然后你在输出中看不到任何内容。
但是,如果您使用“less”打开该文件,您可以在 fusion 输出中看到 less 的 pid。
vim 是否有什么特别之处导致了这种奇怪的情况?
答案1
是的,vim 在需要保存文件之前不会打开文件。相反,vim 使用临时隐藏交换文件来保存您增量所做的更改。保存文件 ( :w
) 后,它将写入原始文件。
您可以使用 来亲自查看lsof
,即:
$ lsof -n -p `pidof vim`
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
[...]
vim 9695 gert 4u REG 252,1 12288 410388 /tmp/.a.swp
[...]
这是常见的行为编辑。less
只是读取文件,在打开文件进行读取时使用技巧是没有任何好处的。