Linux 猫命令

Linux cat command

$ cat a.txt > a.txt

为什么上述命令会使 a.txt 为空?

根据我的理解,cat a.txt 将显示 a.txt,然后将输出写入 a.txt。它应该什么都不做,但为什么 a.txt 变成空的? 有人可以解释一下吗? 谢谢

重定向到标准输出 (>) 优先于任何命令。这意味着 shell 通过将其清零来准备将首先获取 stdout 的文件。然后当您 运行 cat 命令时,它会打印出一个空文件。

这就是为什么您从不尝试通过将命令重定向到正在读取的同一文件来修改文件的原因。您将始终处理一个空文件。

希望对您有所帮助。