'erro de redirecionamento ambíguo' do Bash

2

Eu tenho três diretórios a, b, c e cada um tem um arquivo chamado old.txt

Eu gostaria de copiar o conteúdo do arquivo new.txt para cada um desses arquivos. Minha abordagem é

$ cat < new.txt > {a,b,c}/old.txt

Mas estou chegando

bash: {a,b,c}/old.txt: ambiguous redirect

Por quê? Como isso pode ser feito com a Expansão Cat e Brace em um único comando?

    
por Neo_Returns 19.05.2018 / 22:39

1 resposta

6

O Bash não pode fazer redirecionamentos para vários destinos, pois a divisão da saída exigiria um processo intermediário para ler o comando e gravar em todos os destinos. (Zsh tem suporte embutido para isso, no entanto.)

Você pode usar o tee utility para fazer isso:

tee {a,b,c}/old.txt  < new.txt > /dev/null
    
por 19.05.2018 / 22:41