WAS 엔지니어

[Shell] /dev/null, 파일 설명자(표준 입력, 표준출력, 표준 오류 출력) 본문

Shell Script

[Shell] /dev/null, 파일 설명자(표준 입력, 표준출력, 표준 오류 출력)

bluerainxx 2022. 8. 24. 11:31

 

  /dev/null

  • /dev/null 파일은 항상 비어있음
  • /dev/null 에 전송된 데이터는 버려짐
  • 따라서 특정 명령어 실행 후, 출력이 필요없는 경우는 /dev/null에 출력을 지정하는 것이 좋음

 

 

 

 

 

 파일 설명자

 

0    표준 입력
1    표준 출력
2    표준 오류(진단) 출력 / 표준 에러

 

 

   < filename    입력방향을 바꾼다.
   > filename    출력방향을 바꾼다.
   >> filename    출력에 덧붙인다.
   2> filename    오류의 방향을 바꾼다.
   2>> filename    오류의 방향을 바꾸고 덧붙인다.
   &> filename    출력과 오류를 리다이렉션 한다.
   >& filename    오류와 출력을 리다이렉션 한다.
   1>&2    출력을 오류로 내보낸다.
   2>&1    오류를 출력으로 내보낸다.
   >|    출력을 리다이렉션 할 때 NOCLOBBER 설정을 무시한다.
   <> filename    장치 파일(/dev)이면, 표준 출력, 표준 입력 등에 모두 사용한다.

 

[ex]

 

$ find / -name test.html 2>/dev/null 

 

2>/dev/null은  정상출력이 아닌 에러 출력을 /dev/null로 보내버리는 방법

 

 

 

 

사용방법


 

   # 표준 출력만 무시하는 경우
   $ echo test 1> /dev/null

   # 표준 오류 출력만 무시하는 경우
   $ test.sh 2> /dev/null

   # 표준 출력과 표준 오류 출력 둘 다 무시하는 경우
   $ echo test > /dev/null 2>&1
   $ test.sh > /dev/null 2>&1
  • > /dev/null 은 표준 출력을 /dev/null로 보내라는 의미
  • 2>&1 은 표준에러를 표준 출력이 보내진 곳과 동일한 곳으로 redirection 하라는 의미

 

 

 

   표준 출력과 표준 오류 출력방향을 각각 지정하여 다른 파일로 저장 할 수 있음 
   $ echo test 1> success.txt

   $ test.sh 2> fail.txt

   $ echo test 1> success.txt 2> fail.txt 

   $ echo test 1> /dev/null 2> fail.txt

 

Comments