$ echo "" > /home/jem/rep_0[1-3]/logs/SystemOut.log
bash: /home/jem/rep_0[1-3]/logs/SystemOut.log: ambiguous redirect
我可以一次重定向到多个文件吗?
编辑:允许使用不明确的文件引用的任何答案?
答案 0 :(得分:20)
这就是发球台的用途:
command | tee file1 file2 file3 > file4
tee也输出到stdout,因此您可能希望在重定向后放置一个文件(如上所示),或将stdout发送到/dev/null
。
对于你的情况:
echo "" | tee /home/jem/rep_0[1-3]/logs/SystemOut.log >/dev/null
答案 1 :(得分:5)
您可以使用tee
执行此操作,该文件从stdin读取并写入stdout和文件。由于tee
也输出到stdout,我选择将其输出定向到/dev/null
。请注意,bash扩展与现有文件匹配,因此在执行此命令之前,您尝试写入的文件必须存在才能生效。
$ echo "" | tee /home/jem/rep_0[1-3]/logs/SystemOut.log > /dev/null
作为旁注,传递给""
的{{1}}是多余的。
与您的问题没有直接关系,但如果您不依赖于bash扩展,则可以使用多个管道。
echo
答案 2 :(得分:3)
我有同样的问题,只想添加带有通配符的示例,因为它没有显示。我认为这就是你要找的东西:
echo "" | tee *.log
答案 3 :(得分:1)
你可以这样做:
echo "" | tee /home/jem/rep_0{1..3}/logs/SystemOut.log
要将输出抑制为stdout,请将其添加到上述命令的末尾:
> /dev/null
问题中的echo
命令(不需要空引号)只是在文件中添加换行符。如果要创建空文件,请使用touch
命令。
答案 4 :(得分:0)
没有。如何两次使用tee
呢?
echo "Your text" | tee file1 | tee file2 > file3
答案 5 :(得分:0)
管道到“tee”命令分支到文件并std out,级联tee命令