Se você estiver executando (t) csh, receberá Ambiguous output redirect. se tentar configurar dois redirecionamentos conflitantes:
> echo foo > a > b
Ambiguous output redirect.
No Bash, você pode receber um erro semelhante se usar um array com vários elementos no lugar do nome do arquivo:
$ set aa bb
$ echo foo > "$@"
bash: "$@": ambiguous redirect
Como mencionado em respostas ao redirecionamento do stderr não funcionando em csh , o operador >& trabalha em (t csh para redirecionar stdout e stderr. 2>&1 é a maneira padrão de redirecionar o stderr para o mesmo local que o stdout, mas (t) o csh não suporta isso. Em vez disso, é necessária a combinação > foo 2>&1 como um redirecionamento para foo , um argumento regular 2 e um redirecionamento para 1 , e os redirecionamentos entram em conflito, para que você receba o erro.
>& também funciona no Bash e no zsh, mas não é um recurso padrão.