lsof 不返回由同一用户打开的文件

amp*_*ent 7 vim lsof open-files

考虑这个简单的场景:

  1. 我vim在一个终端中打开一个文本文件 ~/textfile.txt (尝试使用编辑和只读模式)。
  2. 在另一个终端中,我运行

/usr/sbin/lsof ~/textfile.txt

没有结果

为什么?

h3r*_*ler 11

当您使用vi/vim编辑文件时,您实际上并未保持~/<filename>打开状态,而是将文件读入~/.<filename>.swp并保持该临时文件处于打开状态。

如果你运行lsof ~/.<filename>.swp它会显示你正在寻找的信息。

注意:如果有多人编辑同一个文件,您将需要这样做,lsof ~/.<filename>.s*因为每个vi/vim会话将创建自己的交换文件,但会以不同的方式命名