
あるコンピューターで 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">