假设我在某个地方有一个称为file.ext的唯一文件。
它由我的Ubuntu框索引,因此命令locate file.ext正确地给了我(单个)位置,例如/usr/local/some/place/file.ext

所以我认为这是:

locate file.ext | xdg-open

会使用与文件类型关联的默认应用程序打开文件(存在一个,那不是问题),就像我输入了xdg-open /usr/local/some/place/file.ext一样

相反,我收到了来自xdg-open的“使用情况”消息,好像它是在没有参数的情况下调用的。

所以问题是:管道有问题吗?还是该特定命令的某些问题?

最佳答案

因为您必须传递文件名作为选项,而不是传递stdin上的数据。
为此使用xargs:

locate file.ext | xargs xdg-open

或只是subshel​​l:
xdg-open "$( locate file.ext )"

关于bash - 当另一个命令的输出通过管道传输到xdg-open时,xdg-open不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17124288/

10-10 07:17