假设我有一个没有执行权限的文件。现在,打开此类文件的一种快速方法CLI
是使用xdg-open
系统默认打开特定文件。
现在是否可直接打开没有运行权限的文件而不需说明xdg-open
?
例如:
./test.pdf
如果该文件没有执行权限,则应该打开查看器。
答案1
简而言之,不是。
文件不会“运行”,尤其是 PDF 文件。最接近的做法是将 xdg-open 替换为要启动的程序的特定名称:
evince ./file.pdf
不过,xdg-open 命令通过使用配置的 mime 类型简化了这一过程。
更进一步说,bash 脚本之所以如此工作,是因为它们包含一个 shebang 声明,它告诉系统使用哪个程序来打开它(对于 bash 脚本来说,它将是 bash 解释器)。PDF 不包含此信息。
答案2
我认为你可以在某些 shell 中实现这一点。比较bash 是否有一个在执行命令之前运行的钩子?
此链接可能不是最好的,因为bash
它并不像您希望的那样简单。但是它提到preexec
了zsh
。我的观点是:在某些 shell 中,您可以以自己的方式分析命令行并采取自己的操作。