检查文件是否用lsof打开

我正在使用linux mint 13 xfce,我有一个名为wv.gold文件,我试图在bash中检查它是否被任何程序打开(例如,我用sublime-textgedit打开它)

在很多论坛上人们都说如果我运行lsof | grep filename lsof | grep filename我应该得到0如果它打开或256(1)如果它是封闭的,但事实上,我什么都没有(空string)如果我运行使用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 

因此,我得到的path是它的目录,但不是文件的path(那里有其他文件),只有gedit进程,而不是sublime-text过程。

有没有一些简单的方法来查看是否有任何其他程序打开一个txt文件?

编辑 :事实certificate(比较@mata和@ctn的评论),一些编辑器加载文件,并立即closures它们,并保存时,他们只是重新打开文件。 这样,我们只能在他们还在打开一个大文件时才能看到它(因为你有时间在打开的时候观察它),之后就会立即消失。

出现在lsof输出中的行是打开的文件。 如果您的文件不在那里意味着它不是开放的。 这些列中有PID(打开文件的程序的进程ID)和FD(与打开文件关联的文件描述符)。 这些没有特定的值表示打开/关闭。 如果它完全出现,意味着它是开放的。

查看http://linux.die.net/man/8/lsof并搜索contains the first nine characters的文本