Neo*_*rns 2 bash io-redirection brace-expansion cat
我有三个目录 a,b,c,每个目录都有一个名为old.txt的文件
我想将文件new.txt的内容复制到每个文件中。我的方法是
$ cat < new.txt > {a,b,c}/old.txt
Run Code Online (Sandbox Code Playgroud)
但我得到
bash: {a,b,c}/old.txt: ambiguous redirect
Run Code Online (Sandbox Code Playgroud)
为什么?如何在单个命令中使用 Cat 和 Brace Expansion 完成?
Bash 无法重定向到多个目标,因为拆分输出需要一个中间过程来读取命令并写入所有目标。(不过,Zsh 对此有内置支持。)
您可以使用该tee
实用程序来执行此操作:
tee {a,b,c}/old.txt < new.txt > /dev/null
Run Code Online (Sandbox Code Playgroud)