리눅스로 쉘 스크립트를 하게 되면 종종 /dev/null이라는 것을 볼 수 있다.
필자도 요즘 쉘 스크립트를 하면서 자주보게 되는 것이 바로 "/dev/null"이다.
그럼 도대체 이 "/dev/null"이라는 친구는 뭐하는 친구일까?? 한번 알아보자.
A. /dev/null
B. 1>/dev/null
C. 2>/dev/null
일단 A와 B은 같은 의미 ----> /dev/null == 1>/dev/null
1의 의미는 STDOUT(standard output)
2의 의미는 STRERR(standard error)
STDOUT은 표준출력으로, 정상적인 메시지를 출력하고
STDERR은 표준에러로, 에러메시지를 출력하는것이다
즉.
1>/dev/null은 표준출력을 /dev/null로 redirection하고 (정상적인 메시지를 null로)
2>/dev/null은 표준에러를 /dev/null로 redirection 한다 (에러메시지를 null로)
예제)
1>/dev/null 같은 경우는 정상적인 메시지를 리다이렉션을 하게 되는데 위 사진 같은 경우 에러 메시지이기 때문에
정상적인 메시지가 아닌 에러메시지가 출력이된다. 그럼 해당 에러메시지를 null로 만들려면?? 2>dev/null을 이용하면 된다. 한번 해보도록 하자.
그 결과 2>/dev/null을 이용하니 에러메시지가 출력이 되지 않는 것을 알 수 있다.
표준출력, 표준에러 그리고 표준입력도 있는데 이것을 리눅에서는 "파일"이라고 부른다.
/dev/null에 쓰는 아무것도 아닌(null) 장치파일이라고 볼수 있다고 생각하면 된다.
어떠한 작업의 출력되는 내용을 보고 싶지 않을때, 이곳으로 그 출력을 보내버리면,
아무것도 보여지지 않게 되는것이다.
파일을 지울때는 rm 명령어로 지우면 되겠지만 텍스트로 이루어진 로그파일이라도
그 로그파일이 시스템에서 사용중일수 있다 그러면 삭제하는것은 위험 할수 있다
그럴땐
"/dev/null > 로그파일.log"
위와 같이 해주면 로그파일을 비워주게되는것이다.
'리눅스 관련 옵션 명령어' 카테고리의 다른 글
dig 명령어 활용하기 (0) | 2020.04.08 |
---|---|
CentOS 버전별 명령어(service, chkconfig, 방화벽) (0) | 2019.12.14 |
test 명령어 (0) | 2019.12.14 |
리눅스 sed-옵션 (0) | 2019.12.14 |
리눅스 cut명령어 (0) | 2019.12.11 |
댓글