假设我有一个名为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
的“使用”消息,好像它是在没有参数的情况下调用的。
所以问题是:我对管道有什么不妥吗?或者这个特定命令有些问题吗?
答案 0 :(得分:12)
因为你必须传递filename作为选项,而不是stdin上的数据。 使用xargs:
locate file.ext | xargs xdg-open
或只是子壳:
xdg-open "$( locate file.ext )"