0
我在书上读到这个例子:什么是符号 - ,< and >是什么意思?
cp /bin/cat proj33
echo -n x | ./proj33 - pipe33a > pipe33b &
./proj33 <pipe33b >pipe33a &
什么符号-
,>
和<
是什么意思?
我在书上读到这个例子:什么是符号 - ,< and >是什么意思?
cp /bin/cat proj33
echo -n x | ./proj33 - pipe33a > pipe33b &
./proj33 <pipe33b >pipe33a &
什么符号-
,>
和<
是什么意思?
>
是I/O重定向;它将该命令的标准输出(./proj33
)发送到文件pipe33b
。
<
符号也是I/O重定向;它从文件pipe33b
发送命令的标准输入(./proj33
)。
-
只是一个参数。它通常被命令视为读取标准输入而不是文件的指示。在这种情况下,proj33
通常需要一个文件作为其第一个参数,但当参数为-
时,它会从管道读取数据。有时,-
用于指示标准输出。在极端情况下,您可以通过一个命令获得一个-
指示标准输入和一个指示标准输出。使用GNU tar
,您可以将tar -c -f - -T -
的输出写入标准输出(-f -
),并从标准输入(-T -
)读取要归档的文件列表。
如果你看到--
,那是非常不同的;它表示命令的'选项结束';以下任何内容都不是一种选择,即使它以破折号-
开头。
所以假设我有一个名为x.txt的文件,并且我写了这个命令echo x.txt | cat - ,为什么不输入x.txt文件的内容? – Vanddel
因为'echo'简单地回应它的参数,所有这些都在一行上,用空格分隔。 'cat -'读取它在标准输入上发送的内容并将其复制到标准输出。你需要'cat x.txt'或类似'nextcmd