![Bash 中的“不明确的重定向”错误](https://linux22.com/image/133715/Bash%20%E4%B8%AD%E7%9A%84%E2%80%9C%E4%B8%8D%E6%98%8E%E7%A1%AE%E7%9A%84%E9%87%8D%E5%AE%9A%E5%90%91%E2%80%9D%E9%94%99%E8%AF%AF.png)
我有三个目录 a、b、c,每个目录都有一个名为旧的.txt
我想复制文件的内容新的.txt到每个文件。我的方法是
$ cat < new.txt > {a,b,c}/old.txt
但我越来越
bash: {a,b,c}/old.txt: ambiguous redirect
为什么?如何通过单个命令使用 Cat 和 Brace Expansion 来完成此操作?
答案1
Bash 无法重定向到多个目标,因为分割输出需要一个中间进程来读取命令并写入所有目标。 (不过,Zsh 对此有内置支持。)
您可以使用tee
公用事业去做吧:
tee {a,b,c}/old.txt < new.txt > /dev/null