command
stdout과 stderr을 다음으로 리디렉션하고 싶습니다 .logfile.txt
그리고도착하다 otherfile.txt
.
현재 나는 다음과 같이 두 가지를 모두 캡처하고 있습니다.
command >> logfile.txt 2>> logfile.txt
이것은 작동하지만 작동하지 않는 것은 다음과 같습니다.
node myscript.js 2>&1 >> logfile.txt
이는 표준 출력에만 기록됩니다. 두 번째 파일을 추가하려는 경우 내가 찾은 방법 2>&1
에는 tee
.
저는 Bash 버전 4.4.20(1) 릴리스와 함께 Linux Mint 19를 사용하고 있습니다.
답변1
설명된 대로리디렉션 시퀀스 이해에서는 리디렉션 순서가 중요합니다.
node myscript.js 2>&1 >> logfile.txt
표준 오류를 표준 출력이 가리키는 곳으로 리디렉션한 다음 표준 출력을 로 리디렉션합니다 logfile.txt
.아니요표준 오류가 발생했습니다.
순서를 바꿔야 합니다.
node myscript.js >> logfile.txt 2>&1
두 개의 출력이 로그인됩니다 logfile.txt
.
그러나 다음으로 파이프하려는 경우에는 관련이 없습니다 tee
.
node myscript.js 2>&1 | tee -a logfile.txt otherfile.txt