提问人:hao 提问时间:10/31/2023 最后编辑:John Kugelmanhao 更新时间:10/31/2023 访问量:57
为什么“echo 123 > a.txt b.txt”只创建一个文件?
Why does "echo 123 > a.txt b.txt" only create one file?
问:
当我执行时,我希望看到写入两个文件,并且.但实际结果是只创建一个文件。内容写入名为 的文件中。为什么会这样?echo 123 > a.txt b.txt
123
a.txt
b.txt
123 b.txt
a.txt
答:
4赞
John Kugelman
10/31/2023
#1
要理解这一点,需要做两件事:
- 重定向运算符仅适用于单个文件名。该文件名之后的任何内容都不是重定向的一部分;这是命令的附加参数。
>
echo
- 一个鲜为人知的事实是,重定向可以写在命令中的任何位置,并具有相同的效果。
把这些事实放在一起,这意味着这些命令都是等效的:
echo 123 b.txt >a.txt # traditional order
echo 123 >a.txt b.txt # your command
echo >a.txt 123 b.txt
>a.txt echo 123 b.txt
它们都运行该命令,输出重定向到 。echo 123 b.txt
a.txt
(我已将其压缩为,以便更容易看到绑定到的内容。> a.txt
>a.txt
>
评论