管道文件到 gnome-open 命令

mic*_*imo 2 gnome command-line bash bashrc

例如,我想从Books目录中打开一本特定的书。

为了找到它,我做ls | grep -i 'book_i_want' 理想情况下,我想用命令添加下一个管道,如下所示: ls | grep -i 'some_book' | gnome-open 但这不起作用。

什么是正确的命令?

Oli*_*Oli 5

要回答最初的问题,xargs如果您想以 STDIN 作为参数启动某些内容,您可以直言不讳。

ls | ... | xargs gnome-open
Run Code Online (Sandbox Code Playgroud)

或者您可以直接将输出视为参数。这在长的目录中不太有用,因为您可能会达到参数限制。xargs几乎可以肯定更快。

gnome-open $(ls | ...)
Run Code Online (Sandbox Code Playgroud)

但是你不应该解析lsin 命令的输出;这两个都是垃圾。
您可以将所有搜索和过滤合并到一个命令中:

find -iname '*book_i_want*' -exec gnome-open {} +
Run Code Online (Sandbox Code Playgroud)

请注意,默认情况下这将递归到子目录中(与默认值不同ls),因此要么考虑这一点,要么添加-maxdepth 1到该行中。