본문 바로가기

리눅스

입출력 리다이렉션

[1. 개요]

리눅스 환경에서 표준 출력, 표준 에러의  리다이렉션을 정리 한다.

 

[2. 예제 코드]

 

컴파일

$ g++ -o main redirection.cpp

 

 

[3. 리다이렉션 예제 및 출력]

명령어 출력
./main empty This is stdout
empty This is stderr
./main > mylog 2>&1 && cat mylog empty This is stdout
empty This is stderr
./main > mylog 2>&1 && ./main >> mylog 2>&1 && cat mylog empty This is stdout
empty This is stderr
empty This is stdout
empty This is stderr
./main > /dev/null 2>mylog && ./main > /dev/null 2>>mylog && cat mylog empty This is stderr
empty This is stderr
./main > mylog 2>/dev/null && ./main >> mylog 2>/dev/null && cat mylog empty This is stdout
empty This is stdout
./main > mylog 2> mylog && cat mylog empty This is stderr
./main > mylog 2 > mylog && cat mylog 2 This is stderr
2 This is stdout

 

※ 주의사항

  • stderr (2) 를 redirection 할 때는  공백이 있어서는 안된다.
    => 마지막 예제와 같이 공백이 있을 경우, 기대와 다른 결과가 나올 수 있다.
  • 2>&1 의미는  stderr (2) 를 stdout (1) 과 같은 곳으로 리다이렉션 한다는 의미이다.
  • 표준 출력을 버리는 경우, 표준 에러를 리다이렉션 할 떄 >> 기호를 사용 할 수 있다.

'리눅스' 카테고리의 다른 글

CentOS 7 Python3 & pip install  (0) 2021.10.26