Dan*_*eck 19

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

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


但即使只是以下内容也会产生非常不同的结果:

$ cat * | sort
$ sort < *
Run Code Online (Sandbox Code Playgroud)

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

-bash: *: ambiguous redirect
Run Code Online (Sandbox Code Playgroud)

因为它不像前者那样灵活,前者将捕获所有匹配的文件,并将它们作为输入通过管道传输到sort.

  • 怎么样... `sort *`?没有无用的使用 cat,没有无用的使用间接,输入最短,最容易想到,**和**我相信 GNU sort 会对待你对非常大的文件进行可扩展性优化(对此不太确定 - 记住了一些东西那里) (3认同)
  • @sehe 可能。我只是用这个例子来说明两者是不同的。这与排序的有效使用无关。当然,Sort 比那更灵活。 (2认同)