[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 무시하기

  • 기존에 출력되는 stderrPermission 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/nullstderr를 리다이렉트하니 Permission denied가 나오지 않는다.
  • 2stderr를 의미합니다.
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
...


참고자료