确定本地 leafpad 实例打开了哪个文件

确定本地 leafpad 实例打开了哪个文件

我在某台计算机上运行 leafpad 文本编辑器实例,该实例打开了某个文件,我忘记了它的名称和位置(实际上更复杂,但这是一个简化版本)。然后我离开物理机器,通过 SSH 连接到机器并运行 shell。我现在想弄清楚 leafpad 实例打开了哪个文件。

它不在 leafpad 的命令行中(用 检查ps);并且它不是一个打开的文件,或者至少 - 它似乎没有出现在 上lsof

答案1

您不会将使用 打开的文件的名称归档Leafpad/proc/<PID>/fd或,/proc/<PID>/maps因为Leafpad会立即关闭它打开的所有文件。您可以使用 进行检查strace leafpad,例如:

open("/home/ja/python/memory-popen/a.py", O_WRONLY|O_CREAT|O_APPEND, 0666) = 9
lseek(9, 0, SEEK_END)                   = 519
close(9)                                = 0

仅当保存完成后,打开的文件才会重新打开并再次关闭。

正如我在评论中所说,您可以将文件名作为参数传递给 Leafpad- 然后它将被记录在命令名称中:

$ leafpad ~/python/a.py
$ ps aux | grep '[l]eafpad'
ja       12964  1.3  0.2 325764 22328 pts/11   Sl   16:13   0:00 leafpad /home/ja/python/a.py

作为最后的手段,您可以查找最近打开的文件列表 Leafpad,但请注意,这与当前保持打开的~/.local/share/recently-used.xbel文件列表不同:Leafpad

$ grep -B 5 -F '<bookmark:application name="Leafpad"' ~/.local/share/recently-used.xbel | grep -F '<bookmark href='
  <bookmark href="file:///home/ja/python/memory-popen/a.py" added="2019-05-21T13:47:23Z" modified="2019-05-21T14:05:20Z" visited="2019-05-21T13:47:23Z">
  <bookmark href="file:///home/ja/python/motion/motion.py" added="2019-05-21T14:07:21Z" modified="2019-05-21T14:07:21Z" visited="2019-05-21T14:07:21.275528Z">

相关内容