나는 최선의 순서가 캡처 모두 무엇인지 불분명 해요 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 # ?
답변
후자의; 원래 명령의 STDOUT과 STDERR이 동일한 fd로 이동 한 다음이를 티에 함께 공급합니다. 전자의 경우, STDOUT에 참여하는 것은 tee 명령의 STDERR입니다.