假设我在某个地方有一个称为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
或只是subshell:
xdg-open "$( locate file.ext )"
关于bash - 当另一个命令的输出通过管道传输到xdg-open时,xdg-open不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17124288/