ローカルリーフパッドインスタンスが開いているファイルを特定する

ローカルリーフパッドインスタンスが開いているファイルを特定する

あるコンピューターで leafpad テキスト エディター インスタンスを実行しています。このコンピューターでは、あるファイルが開いていますが、そのファイルの名前と場所は忘れてしまいました (実際はもっと複雑ですが、これは簡略化したバージョンです)。次に、物理マシンを離れて移動し、SSH 経由でマシンに接続してシェルを実行します。ここで、leafpad インスタンスが開いているファイルを特定したいと思います。

これは leafpad のコマンドラインには存在しません ( で確認済みps)。また、開かれたファイルでもありません。少なくとも には表示されないようですlsof

答え1

または では、開いたファイルはすべてすぐに閉じられるため、Leafpadで 開いたファイルの名前は保存されません。 これは、 で確認できます。たとえば、次のようになります。/proc/<PID>/fd/proc/<PID>/mapsLeafpadstrace 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">

関連情報