6

假设我在某处有一个名为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,就好像它是在没有参数的情况下调用的。

所以问题是:我对管道有什么误解吗?或者这个特定命令的一些问题?

4

1 回答 1

19

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

locate file.ext | xargs xdg-open

或者只是子外壳:

xdg-open "$( locate file.ext )"
于 2013-06-15T13:44:41.437 回答