$ cat a.txt > a.txt
为什么上面的命令使a.txt为空?
根据我的理解,cat a.txt将显示a.txt,然后将输出写入a.txt。它什么都不做,但是为什么a.txt变成空? 有人可以解释一下吗? 谢谢。
答案 0 :(得分:-1)
重定向到stdout(>)优先于任何命令。这意味着外壳程序通过将其清零来准备将首先获得stdout的文件。然后,当您运行cat命令时,它将打印出一个空文件。
这就是为什么您从不尝试通过将命令重定向到正在读取文件的同一文件来修改文件的原因。您将始终在处理一个空文件。
希望这会有所帮助。