我打开 PDF 文件的默认应用程序是 Adobe Acrobat XI Pro。
我希望能够通过适用于 Linux 的 Windows 子系统使用该程序打开 PDF 文件。
目前,当我运行时,xdg-open main.pdf
我得到以下输出:
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/run-mailcap line 528.
Error: no "view" rule for type "application/pdf" passed its test case
(for more information, add "--debug=1" on the command line)
/usr/bin/xdg-open: 778: /usr/bin/xdg-open: www-browser: not found
/usr/bin/xdg-open: 778: /usr/bin/xdg-open: links2: not found
/usr/bin/xdg-open: 778: /usr/bin/xdg-open: elinks: not found
/usr/bin/xdg-open: 778: /usr/bin/xdg-open: links: not found
/usr/bin/xdg-open: 778: /usr/bin/xdg-open: lynx: not found
/usr/bin/xdg-open: 778: /usr/bin/xdg-open: w3m: not found
xdg-open: no method available for opening 'main.pdf'
跑步xdg-mime query default application/pdf
给了我evince.desktop
。我不确定这是什么。
跑步grep -i "pdf" /usr/share/applications/defaults.list
给了我:
application/pdf=evince.desktop
application/x-bzpdf=evince.desktop
application/x-gzpdf=evince.desktop
application/x-xzpdf=evince.desktop
答案1
在我看来,您正在尝试从适用于 Linux 的 Windows 子系统打开文件,但 Windows 主机操作系统上安装了程序 (Adobe Acrobat)。
在这种情况下,我建议您不要使用,xdg-open
而是直接将 open 命令从 Bash 传递到 Windows 终端(注意:我希望 Adobe Acrobat 成为您在 Windows 上的默认 pdf 阅读器)。
这可以通过在 WSL 中的 Bash 中输入以下内容来完成:
cmd.exe /C start <your file>
这将在后台打开 Windows 终端,评估使用哪个程序打开该文件(使用 Windows 默认文件关联),如果成功在 Windows 中打开该文件(您可以通过cmd /?
键入cmd.exe)
.
为了避免每次都输入整行,您还可以open
通过编辑.bash_aliases
文件来为命令设置别名:
open='cmd.exe /C start'
这将允许您使用open <file>
Windows 文件关联。