排序 file.txt > file.txt 为空
sort file.txt > file.txt is empty
我对一个简单的命令有疑问,这是因为在 bash 如果我这样做
sort file.txt > file.txt
file .txt 仍然是空的(它不应该保持 file.txt 之前的内容但已排序)但是如果我这样做
sort file.txt >> file.txt
然后将有序元素添加到前面的元素中。
一旦您使用 >
定位文件,shell 就会在 sort
读取之前截断所有数据。
sort file.txt > tmp.txt && mv tmp.txt file.txt
这是预期的行为。短语 > file.txt
在命令 sort
甚至 运行 之前打开 file.txt
用于 覆盖 。所以当 sort
运行s 它看到 file.txt
是空的。
另一方面,短语 >> file.txt
打开 file.txt
for appending before the command sort
even 运行 .因此,当 sort
运行s 时,它会读取完整文件,然后将结果附加到文件中。
我对一个简单的命令有疑问,这是因为在 bash 如果我这样做
sort file.txt > file.txt
file .txt 仍然是空的(它不应该保持 file.txt 之前的内容但已排序)但是如果我这样做
sort file.txt >> file.txt
然后将有序元素添加到前面的元素中。
一旦您使用 >
定位文件,shell 就会在 sort
读取之前截断所有数据。
sort file.txt > tmp.txt && mv tmp.txt file.txt
这是预期的行为。短语 > file.txt
在命令 sort
甚至 运行 之前打开 file.txt
用于 覆盖 。所以当 sort
运行s 它看到 file.txt
是空的。
另一方面,短语 >> file.txt
打开 file.txt
for appending before the command sort
even 运行 .因此,当 sort
运行s 时,它会读取完整文件,然后将结果附加到文件中。