Files

vim 未顯示在 fuser 中

  • November 30, 2012

首先使用 Vim 編輯一個文件,比如 /tmp/A。

假設vim程序是唯一訪問/tmp/A的程序,那麼使用“ctrl+z”掛起程序,執行

fuser /tmp/A

然後你在輸出中什麼也看不到。

但是,如果您使用“less”打開該文件,您可以在 fuser 輸出中看到 less 的 pid。

vim 有什麼特別之處會導致這種奇怪的情況發生嗎?

是的,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只是讀取文件,在打開文件進行讀取時使用技巧沒有任何好處。

引用自:https://unix.stackexchange.com/questions/57228