为什么管道命令无法工作

时间:2012-10-07 01:41:35

标签: shell

firefox $(grep -l "mysed" /home/test)  

当我将命令更改为以下命令时,该命令可以在firefox中打开包含单词mysed的所有文件,

grep -l "mysed" /home/test |  firefox 

为什么firefox无法打开grep选择的文件?

2 个答案:

答案 0 :(得分:3)

因为管道不应用参数。管道将stdout从一个进程重定向到另一个进程的stdin。

您可以使用xargs来实现您的目标:

grep -l "mysed" /home/test | xargs firefox 

答案 1 :(得分:0)

第一个命令提供要作为Firefox的命令行参数打开的文件,而第二个命令提供它们在Firefox的STDIN上没有解释,因此无法打开它们。