[Linux] 터미널 프롬프트에서 /dev/null과 리다이렉트(Redirect)를 이용해 stderr를 무시하기
stderr를 /dev/null과 리다이렉트(Redirect)를 이용해 터미널 프롬프트 화면에 출력되지 않도록 해보자.
환경
- Linux 기반 시스템
- Bash shell(/bin/bash)
- 리다이렉트(Redirect)
용어 정리
/dev/null이란?
/dev/null
: NULL 장치라 불리는 부분으로 여기에 쓰여진 모든 값들을 버리지만 OS에는 작업에 성공했다고 보고하는 파일이다.stderr
를/dev/null
에 쓰면 표준 오류를 화면에서 안 볼 수 있다.
리다이렉트(Redirect)란?
Redirect('>')
: 프로그램의 결과 혹은 출력(output)을 파일이나 다른 스트림으로 전달하거나 남길 때 사용하는 명령어다.- 참고 링크: Redirect와 Pipe의 차이
사용 예제
find 명령어에서 stderr 무시하기
- 기존에 출력되는
stderr
로Permission denied
라고 나온다.
$ find / | grep neutron
find: ‘/run/docker’: Permission denied
find: ‘/run/containerd’: Permission denied
find: ‘/run/lxcfs’: Permission denied
find: ‘/run/sudo’: Permission denied
find: ‘/run/log/journal/50739525d1fb4eac9e863478fb990fed’: Permission denied
find: ‘/run/lvm’: Permission denied
/dev/null
에stderr
를 리다이렉트하니Permission denied
가 나오지 않는다.2
는stderr
를 의미합니다.
find / 2> /dev/null | grep neutron
/home/twpower/test/neutron_patched
/home/twpower/test/neutron_patched/LICENSE
/home/twpower/test/neutron_patched/.gitignore
/home/twpower/test/neutron_patched/bin
...