lsof 不显示我的 djvu 文件

lsof 不显示我的 djvu 文件

我正在尝试打印当前在或djvu上运行的文件名,但是当我这样做时,我在终端中没有得到任何输出,其中相同的命令适用于文件。okularatrillsof | grep ".djvu$"pdf

答案1

  • 如果应用程序以不同用户身份运行,您将需要sudo

    sudo lsof | grep ".djvu$"
    
  • 如果某些文件扩展名是大写,则需要-i忽略grep大小写:

    sudo lsof | grep -i ".djvu$"
    
  • 开头的点将.djvu$匹配任何字符(尽管这可能不会在您的情况下导致误报);你的意思可能是\.djvu$

  • 我建议将正则表达式放在单引号而不是双引号中,因为美元符号对于 Linux shell 有特殊含义:

    sudo lsof | grep -i '\.djvu$'
    
  • (更新自pspgrep感谢 qubert 的评论)如果应用程序将文件读​​入内存然后关闭它,则lsof不会看到它,但ps(进程列表)会;pgrep是搜索正在运行的进程的正确工具;尝试:

    pgrep --list-full --full --ignore-case '\.djvu'
    

相关内容