티를 사용하여 STDERR 및 STDOUT을 파일로 캡처 /tmp/output.txt다음 보낼 STDERR에 STDOUT(지금에 전송된다

나는 최선의 순서가 캡처 모두 무엇인지 불분명 해요 STDERRSTDOUT사용하여 동일한 파일에 tee. 파일로 파이프하려면 경로 재 지정 후 파일 핸들을 매핑해야한다는 것을 알고 있습니다.

find . >/tmp/output.txt 2>&1

이 보내 쉘 지시 STDOUT/tmp/output.txt다음 보낼 STDERRSTDOUT(지금에 전송된다 /tmp/output.txt).

2>&1파일을 재 지정하기 전에 수행을 시도 하면 원하는 효과가 없습니다.

그러나 파이프를 사용 tee하려면 다음과 같아야합니다.

find . |tee /tmp/output.txt 2>&1   # or
find . 2>&1 |tee /tmp/output.txt   # ?



답변

후자의; 원래 명령의 STDOUT과 STDERR이 동일한 fd로 이동 한 다음이를 티에 함께 공급합니다. 전자의 경우, STDOUT에 참여하는 것은 tee 명령의 STDERR입니다.


답변