Мне неясно, какой лучший порядок для записи обоих 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 |
. Это неявное перенаправление стандартной ошибки выполняется после любых перенаправлений, указанных командой».