假设我在某个地方有一个独特的文件file.ext.它由我的Ubuntu框索引,所以命令locate file.ext正确地给了我(单个)位置,比方说/usr/local/some/place/file.ext.
所以我认为这个:
locate file.ext | xdg-open
Run Code Online (Sandbox Code Playgroud)
将使用与文件类型相关联的默认应用程序打开文件(有一个,这不是问题),就像我已输入 xdg-open /usr/local/some/place/file.ext
相反,我得到了"使用"消息xdg-open,好像它是在没有参数的情况下调用的.
所以问题是:我对管道有什么不妥吗?或者这个特定命令有些问题?
小智 13
因为你必须传递filename作为选项,而不是stdin上的数据.使用xargs:
locate file.ext | xargs xdg-open
Run Code Online (Sandbox Code Playgroud)
或者只是子壳:
xdg-open "$( locate file.ext )"
Run Code Online (Sandbox Code Playgroud)