Проблема в том, что когда вы перенаправляете свой вывод, он больше не доступен для следующего перенаправления. Вы можете подключиться к tee
в подоболочке, чтобы сохранить вывод для второго перенаправления:
( cmd | tee -a file2 ) >> file1 2>&1
или если вы хотите увидеть вывод в терминале:
( cmd | tee -a file2 ) 2>&1 | tee -a file1
Чтобы избежать добавления stderr первого tee
в file1
, вы должны перенаправить stderr вашей команды на какой-либо файловый дескриптор (, например. 3 ), а позже снова добавьте это в stdout:
( 2>&3 cmd | tee -a file2 ) >> file1 3>&1
# or
( 2>&3 cmd | tee -a file2 ) 3>&1 | tee -a file1
(спасибо @fra -Сан)