проверьте, открыт ли файл с помощью lsof
м, используя Linux Mint 13 XFCE и у меня есть файл с именемwv.gold
что я'я пытаюсь проверить в Bash, если этооткрывается любой программой (например, я открыл ее вsublime-text
а также )gedit
На многих форумах люди говорят, что если я бегуlsof | grep filename
Я должен получить0
если оно'с открытым или256(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
процесс.
Есть ли какой-нибудь простой способ узнать, открывается ли текстовый файл какой-либо другой программой?
РЕДАКТИРОВАТЬ: Оказывается (см. Комментарии @mata и @ctn), что некоторые редакторы загружают файлы и сразу же закрывают их, и они просто открывают файл при его сохранении. Таким образом, мы можем видеть его только тогда, когда они все еще открывают большой файл (поскольку у вас есть время, чтобы наблюдать его при открытии), и он сразу исчезает после этого.