Мені незрозуміло, який найкращий порядок - це захоплення і одного STDERRі STDOUTтого ж файлу за допомогою tee. Я знаю, що якщо я хочу передати файл, мені доведеться зіставити файл файлу після перенаправлення, тобто
find . >/tmp/output.txt 2>&1
Це вказує на оболонку , щоб відправити STDOUTна , /tmp/output.txtа потім відправити STDERRна STDOUT(тепер відправка /tmp/output.txt).
Спроба виконати 2>&1попереднє перенаправлення файлу не матиме бажаного ефекту.
Однак коли я хочу використовувати трубу, teeце:
find . |tee /tmp/output.txt 2>&1 # or
find . 2>&1 |tee /tmp/output.txt # ?
|&використовується, стандартна помилка command1 з'єднана зі стандартним входом command2 через трубу; це скорочення2>&1 |. Це неявне перенаправлення стандартної помилки виконується після будь-яких перенаправлень, визначених командою."