본문 바로가기
IT/Linux

/dev/null 2>&1 의미

by 성준하이 2023. 9. 20.
반응형

터미널을 사용할 경우 주로 사용을 하게 되는데 /dev/null 2>&1 에 대해서 다뤄볼 것이다.

 

$ rm file > /dev/null

리다이렉트로 되어있는 이 명령어는 표준 출력을 /dev/null로 리다이렉션 하라는 뜻이다.

결국 표준 출력을 버리라는 뜻이다.

 

만약 여기서 file이라는 파일이 존재하지 않다면 표준 에러가 출력이 된다.

$ rm file > /dev/null

rm: cannot remove 'file' : No such file or directory

이건 표준 에러이기때문에 화면에 표시가 되었다.

만약 표준 출력이었다면 버려졌을텐데 표준 에러였기에 표현이 되었다.

 

 

만약 표준 에러를 버리고 싶다면

$ rm file > /dev/null 2>&1 

을 사용한다.

여기서 2>&1 은 표준에러를 표준 출력으로 리다이렉션 하라는 의미이다.

그럼 바로 위 명령어는 rm test에 대한 표준 출력은 /dev/null로 버리고, 표준 에러는 표준 출력으로 리다이렉션하라는 의미이다.

그럼 결국 표준 에러가 표준 출력이 되는데 표준 출력은 버리라고 했으니 아무 출력이 나오지 않는다.

0은 표준입력 / 1 은 표준출력 / 2는 표준 에러 를 의미한다.

 

출력에 따라 파일을 분리해서 저장하고 싶을 경우엔 아래와 같다.

$ test.sh 1>success.log 2>error.log

로 지정 가능하다.

그럼 1일경우. 표준 출력일 경우엔 성공인 경우이며 success.log에 저장

2일경우. 표준 에러일 경우엔 에러이므로 error.log에 저장이 된다.

반응형

댓글