stdout을 stderr로 교체

stdout을 stderr로 교체

stdout으로 전송된 텍스트가 stderr의 텍스트로 대체되도록 명령 출력을 리디렉션할 수 있습니까?

$ ./script
this line is redirected to stdout
this line is redirected to stderr

$ ./script (insert redirections here)
this line is redirected to stderr

를 사용할 수 있다는 것을 알고 있지만 1>/dev/null이를 수행하기 위해 텍스트를 stderr에서 stdout으로 리디렉션하는 방법이 있는지 궁금합니다.

답변1

다음을 수행할 수 있습니다.

./script 2>&1 1>/dev/null

이는 fd 2를 fd 1이 가리키는 것(즉 stdout)으로 리디렉션한 다음 fd 1을 로 리디렉션합니다 /dev/null. 두 번째 리디렉션은 첫 번째 리디렉션에 영향을 주지 않으며 fd 2에 대한 출력은 으로 전송됩니다 stdout.

그러나 순서는 중요합니다. 이것으로:

./script 1>/dev/null 2>&1

모든 출력은 으로 전송됩니다 /dev/null.

관련 정보