리디렉션 명령이 예기치 않게 발생했습니다.

리디렉션 명령이 예기치 않게 발생했습니다.

물론 이 함수에는 추적 결과를 로컬 파일로 내보내는 strace옵션이 있다는 것을 알고 있습니다. -o하지만 사용하고 싶어요리디렉션 명령(>) 여기요.

strace -e trace=file lastb|grep " = 0" >file

여기에는 논리적인 문제가 있습니다. >마지막 것을 따르십시오. 이것은 내 의도가 아닙니다. 다음과 같이 괄호를 사용해도 개선할 수 없습니다.

(strace -e trace=file lastb)|grep " = 0" >file

그래서 사용하는 방법리디렉션 명령(>) 추적 정보가 포함된 파일을 받으시겠습니까?

답변1

strace는 stderr대신 에 로 인쇄합니다 stdout. 파이프로 연결하려면 stderr로 리디렉션해야 합니다.stdout

strace -e trace=file lastb 2>&1|grep " = 0" > file

또한 다음으로 리디렉션하여 lastb일반 출력을 억제할 수도 있습니다(여기에서는 다음과 같이 축약됨)./dev/null&-

strace -e trace=file lastb 2>&1 >&- | grep " = 0" file

lastb정보를 어디서 얻을 수 있는지 알고 싶다면 일반적으로 다음 위치에 있습니다./var/log/btmp

관련 정보