巴什排序重定向(Bash Sorting Redirection)

2019-10-18 23:14发布

之间有什么区别sort file1 -o file2sort file1 > file2 ? 因此,从我做了什么至今他们做同样的事情,但也许我失去了一些东西。

Answer 1:

结果是相同的,但在的情况下-o file2生成的文件是由建立sort ,而在另一种情况下,它是由直接创建bash和填充的标准输出sort 。 所述xfopen在450行中定义sort.c中的coreutils治疗这两种情况下( stdout-o filename )同样。

重定向的标准输出sort是比较通用的,因为它可能会被重定向到一个另一个程序| 在地方的> ,其中-o选项使越来越难做了(但并非不可能)

-o选项是非常方便的到位排序为重定向到同一个文件,因为它创建(截)由之前的调用外壳将导致截断的文件sort



Answer 2:

以下两条命令都差不多,只要file1file2是不同的。

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
标签: linux bash