我只是想知道:
之间的区别sort < output
和
sort output
在Linux中。它是如何工作的?
答案 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 output
将output
文件名作为命令行参数进行排序。
排序,因为许多以文件名作为参数的实用程序将尝试从stdin
读取输入,如果你没有给它一个文件名作为参数,例如在这里的第一种情况。在这两种情况下,sort将读取output
文件的内容,对其进行排序,并将结果写入stdout。