我在一本书中读到了这个例子:
cp /bin/cat proj33
echo -n x | ./proj33 - pipe33a > pipe33b &
./proj33 <pipe33b >pipe33a &
符号-
,>
和<
是什么意思?
答案 0 :(得分:6)
>
是I / O重定向;它将命令的标准输出(./proj33
)发送到文件pipe33b
。
<
符号也是I / O重定向;它从文件./proj33
发送命令的标准输入(pipe33b
)。
-
只是一个论点。它通常被命令视为读取标准输入而不是文件的指示。在这种情况下,proj33
通常可能需要一个文件作为其第一个参数,但是当参数为-
时它会从管道中读取。有时,-
用于表示标准输出。在极端情况下,您可以在一个命令中获得一个-
指示标准输入和一个指示标准输出。使用GNU tar
,您可以将tar -c -f - -T -
输出写入标准输出(-f -
),并将要归档的文件列表从标准输入(-T -
)读取
如果你看到--
,那就非常不同了;它表示命令的“选项结束”;任何后面的内容都不是一个选项,即使它以短划线-
开头。