Мені незрозуміло, який найкращий порядок - це захоплення і одного 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 |
. Це неявне перенаправлення стандартної помилки виконується після будь-яких перенаправлень, визначених командою."