코딩공부/기타

>> /dev/null 2>&1 의미

내일의기대 2023. 12. 6. 21:10

 

본 글에서는 >> /dev/null 2>&1의 의미를 풀어서 설명한다.
결론적으로 말하자면 표준출력(stdout)과 표준에러(stderr)를 모두 버린다는 뜻이다.

1. 해석하고자 하는 명령어

./app/myprogram >> /dev/null 2>&1

 

2. 명령어 뜯어보기

-  ./app/myprogram >> 
myprogram의 결과를 >> (redirect)에 뒤에 붙여서 쓴다는 의미이다. >>는 뒤에 붙여쓰고 >는 이미 존재하는 파일을 지운다.

- /dev/null
/dev/null은 redirect결과를 버릴때 사용하는 특별한 파일이다. 사실 그래서 위의 명령어에서 >> 대신 >를 사용해도 결과는 동일하다. 따라서 프로그램 표준 출력 결과를 /dev/null에 redirect시켜 모두 버려지게 만드는 것이다.

- 2>&1
2는 표준에러를 의미한다. 표준 에러를 표준인풋(1)으로 redirect 시켜라는 의미이다. 표준인풋은 이미 앞의 명령어로 /dev/null로 redirect 되고 있으므로 표준에러 또한 모두 /dev/null로 redirect 되어 사라지게 된다. 여기서 &의 의미는 파일이 아닌 file descriptor인 표준인풋을 나타내기 위해 사용된다.

3. 사용처

서버에서 프로그램을 구동할때 표준출력이 나오는것을 원치 않으면 명령어를 사용하면 된다. 생각보다 많이 사용하는듯 하다.

 

참고자료

1. https://stackoverflow.com/questions/10508843/what-is-dev-null-21

 

What is /dev/null 2>&1?

I found this piece of code in /etc/cron.daily/apf #!/bin/bash /etc/apf/apf -f >> /dev/null 2>&1 /etc/apf/apf -s >> /dev/null 2>&1 It's flushing and reloading the

stackoverflow.com

2. https://twpower.github.io/133-difference-between-redirect-and-pipe

 

[Linux] Redirect('>')와 Pipe('|')의 차이

Practice makes perfect!

twpower.github.io

3. https://inpa.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-devnull-%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%EC%85%98-%EA%B8%B0%ED%98%B8-%EC%A2%85%EB%A5%98

 

🐧 /dev/null 2>&1 명령어 의미 - 완벽 이해하기

리눅스 리다이렉션 2>&1 는 표준에러를 표준출력으로 redirection 하라는 의미이다. 보통 프로그램에서 에러가 발생하면, 화면에 에러메세지를 표시해서 사용자에게 경고를 주게 된다. 이러한 기본

inpa.tistory.com