之间有什么区别sort file1 -o file2
和sort file1 > file2
? 因此,从我做了什么至今他们做同样的事情,但也许我失去了一些东西。
Answer 1:
结果是相同的,但在的情况下-o file2
生成的文件是由建立sort
,而在另一种情况下,它是由直接创建bash
和填充的标准输出sort
。 所述xfopen
在450行中定义sort.c
中的coreutils治疗这两种情况下( stdout
和-o filename
)同样。
重定向的标准输出sort
是比较通用的,因为它可能会被重定向到一个另一个程序|
在地方的>
,其中-o
选项使越来越难做了(但并非不可能)
该-o
选项是非常方便的到位排序为重定向到同一个文件,因为它创建(截)由之前的调用外壳将导致截断的文件sort
。
Answer 2:
以下两条命令都差不多,只要file1
和file2
是不同的。
sort file1 -o file2 # Output redirection within sort command
sort file1 > file2 # Output redirection via shell
让我们看看当输入和输出文件是相同的会发生什么情况file
,即试图就地进行排序
sort file -o file # Works perfectly fine and does in-place sorting
sort file > file # Surprise! Generates empty file. Data is lost :(
综上所述, 以上两种重定向方式是相似但不相同
测试
$ cat file
2
5
1
4
3
$ sort file -o file
$ cat file
1
2
3
4
5
$ sort file > file
$ cat file
$ ls -s file
0 file
Answer 3:
没有太大的差别>
是一个标准的UNIX输出重定向功能。 也就是说“写你的输出,否则你将在终端指定的文件上显示” -o选项是更具体的排序功能。 它是一种再说“输出写入此给定文件”
该>
可以使用其中的工具没有具体有写入文件参数或选项。
文章来源: Bash Sorting Redirection