Em bash , é um pouco complicado:
command 2> >(tee err) 1> >(tee out) | tee >all
Aqui, precisamos da substituição de processos >(...) e tee para contornar o problema . Com a substituição do processo, o processo tee é anexado ao canal correspondente. tee , em seguida, grava as linhas no arquivo e imprime então no STDOUT . Portanto, depois de gravar nos arquivos, STDERR e STDOUT serão impressos em STDOUT . Em bash , não podemos usar vários redirecionamentos do mesmo canal em um comando. É por isso que precisamos canalizar essa saída para tee novamente, que então apenas imprime.
Dentro de zsh (observe que a opção MULTIOS deve ser definida, que é detida em zsh ):
command >out 2>err &>all