
Я запускаю экземпляр текстового редактора Leafpad на определенном компьютере, на котором открыт определенный файл, имя и местоположение которого я забыл (на самом деле это сложнее, но это упрощенная версия). Затем я покидаю физическую машину, отхожу, подключаюсь к машине через SSH и запускаю оболочку. Теперь я хочу выяснить, какой файл открыт в этом экземпляре 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">