Linux mint 13 xfce を使用しておりwv.gold、任意のプログラムで開いているかどうかを bash でチェックしようとしているという名前のファイルがあります (たとえば、sublime-textandで開きましたgedit)
多くのフォーラムでは、実行すると開いているか閉じているかlsof | grep filenameを取得する必要があると人々は言いますが、実際には を使用して実行しても何も取得せず (空の文字列)、 を使用して実行すると小さなリストを取得します。0256(1)grep "wv.gold"grep gold
リストは次のようなものです。
bash 2045 user cwd DIR 8,1 4096 658031 /home/user/path/to/dir
bash 2082 user cwd DIR 8,1 4096 658031 /home/user/path/to/dir
watch 4463 user cwd DIR 8,1 4096 658031 /home/user/path/to/dir
gedit 16679 user cwd DIR 8,1 4096 658031 /home/user/path/to/dir
lsof 20823 user cwd DIR 8,1 4096 658031 /home/user/path/to/dir
grep 20824 user cwd DIR 8,1 4096 658031 /home/user/path/to/dir
lsof 20825 user cwd DIR 8,1 4096 658031 /home/user/path/to/dir
したがって、ディレクトリへのパスは取得しますが、ファイルへのパスは取得しません (そこには他のファイルがあります)。どちらの方法でも、gedit処理するのではなく、sublime-text処理するだけです。
txt ファイルが他のプログラムによって開かれているかどうかを確認する簡単な方法はありますか?
EDIT : 一部のエディターはファイルをロードしてすぐに閉じ、保存時にファイルを再度開くだけであることが判明しました (@mata および @ctn からのコメントを参照)。このように、大きなファイルをまだ開いているときにのみ見ることができ (開いている間にファイルを観察する時間があるため)、その後すぐに消えます。