向后重定向与管道相同吗?

向后重定向与管道相同吗?

在 Linux 中如果你输入

sort < txtfile

这和

cat txtfile | sort

答案1

对于你的标题问题:不。stdin从文件内容中获取(输入重定向) 与将一个程序的输出通过管道传输到另一个程序的输入不同。

但是,由于您cat实际上只是打印文件的内容,因此该示例中的结果实际上是相同的。


但即使只是以下情况也会产生截然不同的结果:

$ cat * | sort
$ sort < *

如果有多个匹配的文件,后者将产生

-bash: *: ambiguous redirect

因为它不像前者那么灵活,前者会捕获所有匹配的文件,并将它们作为输入传送到sort

相关内容