본문으로 바로가기

리눅스 표준 입출력 리다이렉션

category 리눅스/Linux 일반 2013. 11. 17. 04:43

쉘에서 키보드로 명령을 입력받는 것을 표준 입력(Standard Inupt)이라 하며, 키보드로 입력 받은 명령의 실행결과를 모니터로 출력하는 것을 표준 출력(Standard Outpu)이라고 합니다.

입출력 리다이렉션

쉘에서 명령의 결과를 모니터로 출력하지 않고 파일로 저장할 수 있는데 이때 리다이렉션을 사용한다. 리다이렉션을 사용하여 출력과 입력의 방향을 지정해 줄 수 있다.

리다이렉션 기호 방향 의미
> 표준 출력 명령 > 파일 : 명령의 결과를 파일로 저장
>> 표준 출력(추가) 명령 >> 파일 : 명령의 결과를 기존 파일 데이터에 추가
< 표준 입력 명령 < 파일 : 파일의 데이터를 명령에 입력

기타 리다이렉션 기호의 쓰임은 아래와 같다.

  • 명령 >& 파일명 : 명령이 실행된 표준 출력의 결과와 에러를 파일로 출력
  • 명령 >>& 파일명 : 명령이 실행된 표준 출력의 결과와 에러를 파일로 덧붙여 출력
  • 명령 >! 파일명 : 파일의 존재 유무와 상관없이 생성하고 명령이 실행된 표준 출력의 결과를 파일로 출력
  • 명령 >&! 파일명 : 파일의 존재 유무와 상관없이 생성하고 명령이 실행된 표준 출력의 결과와 에러를 파일로 출력
  • 명령 >>! 파일명 : 파일의 존재 유무와 상관없이 생성하고 파일에 덧붙여 출력
  • 명령 >>&! 파일명 : 파일의 존재 유무와 상관없이 생성하고 명령이 실행된 표준 출력의 결과와 에러를 파일에 덧붙여 출력
  • 명령A | 명령B : 명령A의 출력을 명령B 입력으로 사용하여 실행
  • 명령A |& 명령B : 명령A의 출력과 에러를 명령 B의 입력으로 사용하여 실행

파일 디스크립터

표준 입력과 표준 출력 그리고 표준 에러를 쉘이나 시스템 프로그래밍에서는 숫자로도 표현할 수 있는데 이를 파일 디스크립터라고 한다.

구분 장치 파일 디스크립터
표준 입력 키보드 0
표준 출력 모니터 1
표준 에러 모니터 2

/dev/null 2>&1

/dev/null은 0 값을 갖는 null 파일이고 표준 에러(2)를 표준 출력(1)으로 리다이렉션 하라는 의미이다.