管道与重定向


23

我使用管道和重定向已经很长时间了,只是意识到我不知道它们到底有什么不同。我只知道,如果要将输出存储在文件中,请使用>。否则,大多数时候您只使用|。有人可以解释管道和重定向之间的区别吗?


Answers:


25

两者都执行相同的基本操作;他们重定向执行过程的文件描述符。不同之处在于方式。管道将一个进程的stdout连接到另一个进程的stdin,而重定向从一个文件重定向到文件(>从stdout 重定向到文件,<从文件重定向到stdin)。


1
Linux和其他具有Linux的系统中的区别模糊/dev/fd。例如,如果您运行echo foo > >(somecommand),它将扩展为echo foo > /dev/fd/3。它仍然是重定向,但是是一个过程。
2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.