항상 오류를 / dev / null로 리디렉션


22

명령 /dev/null에서 다음 구문 을 사용하여 오류 메시지를 리디렉션 할 수 있다는 것을 알고 있습니다 .

command arg1 arg2 2>/dev/null

그러나 /dev/null달리 지정하지 않는 한 오류 메시지가 항상로 이동하도록 기본적 으로이 작업을 수행하는 방법이 있습니까?


1
간단히 말해서 : yes-/ dev / stderr을 / dev / null로 리디렉션합니다. 그러나 스스로 알아낼 수 없다면 성공보다 치명적인 것을 깨뜨릴 가능성이 있으므로 시도해서는 안됩니다.
Benubird

@Benubird stderr! = / dev / stderr. 해당 파일을 리디렉션하면 아무 작업도 수행되지 않습니다. / dev /의 파일은 단지 편의를위한 것입니다.
Chris Down

@ChrisDown 당신이 맞아요, / dev / stderr은 링크 일뿐입니다. 여전히 많은 프로세스가 fd / 2 대신 해당 프로세스에 쓰므로 리디렉션 할 수도 있습니다. 거기에서 더 복잡해 지므로 답변 대신 의견을 남겼습니다. :).
Benubird

답변:


29

많은 프로그램이 실제로 오류를 나타내지 않는 출력을 stderr로 보냅니다. 예를 들어, 일부 프로그램에서는 프로그램의 출력에 영향을 줄 수있는 정보를 표시하는 데 사용됩니다 (다른 프로그램으로 파이프되도록 설계됨). 그러나 다음을 수행 할 수 있습니다.

exec 2>/dev/null

스크립트 외부 에서이 작업을 수행하지 않는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.