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