You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何执行echo 123 > a.txt b.txt仅生成一个文件?

问题原因解析
  • shell的重定向逻辑:> 作为输出重定向符号,只会将命令的标准输出导向紧跟它的第一个文件名,而你写在a.txt后面的b.txt,会被shell当作echo命令的普通参数处理。
  • 实际执行过程:当你运行echo 123 > a.txt b.txt时,shell先处理> a.txt,把echo的输出目标指定为a.txt;随后echo命令接收的参数是123和b.txt,所以它会将这两个内容拼接后输出,最终a.txt里就变成了123 b.txt,而b.txt根本不会被创建。

正确实现多文件写入的方式

如果需要将内容同时写入多个文件,应该使用tee命令,示例:

echo 123 | tee a.txt b.txt

tee命令会将输入内容同时输出到终端(如果不需要终端输出,可以追加> /dev/null)和指定的所有文件中;如果是要追加内容而非覆盖,可添加-a参数:echo 123 | tee -a a.txt b.txt

内容的提问来源于stack exchange,提问作者hao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 04:09:51