“sort< output”和“sort output”之间的区别

时间:2011-09-05 12:01:23

标签: linux io

我只是想知道:

之间的区别
sort < output

sort output
在Linux中

。它是如何工作的?

4 个答案:

答案 0 :(得分:2)

sort < output告诉shell使用文件output的内容并将其转储到标准输入以进行命令排序。

sort output告诉命令sort在磁盘上使用文件output作为源代码。

许多unix命令将接受标准输入或文件作为输入。接受标准允许更容易地链接命令,通常用于ps aux | grep "my process" | sort之类的事情。 (列出所有进程,按“我的进程”筛选,排序行)。

答案 1 :(得分:2)

这已在unix.stackexchange上讨论过:Performance difference between stdin and command line argument

sort < file中,shell执行重定向。它打开文件并将stdin文件描述符传递给读取它的sort命令。

sort file中,sort命令打开文件然后读取它。

答案 2 :(得分:1)

使用sort < input shell将运行sort命令,并将其输入附加到文件'input'。

使用sort input shell将运行sort命令,并将其作为参数提供给字符串input。然后sort命令将打开文件以读取内容。

答案 3 :(得分:0)

实际上没有区别。

sort < output使用shell的一项称为文件重定向的功能(参见例如here

shell打开磁贴文件output,并将该打开文件作为stdin附加到排序程序。

sort outputoutput文件名作为命令行参数进行排序。

排序,因为许多以文件名作为参数的实用程序将尝试从stdin读取输入,如果你没有给它一个文件名作为参数,例如在这里的第一种情况。在这两种情况下,sort将读取output文件的内容,对其进行排序,并将结果写入stdout。