
我正在某台電腦上執行 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
作為最後的手段,您可以查找in打開的最近文件列表 ,但請注意,這與當前保持打開的~/.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">