표준 스트림과 리다이렉션

Aelan·2024년 11월 23일

Linux 초보

목록 보기
9/14

표준 스트림

:표준 스트림은 프로그램이 실행되는 동안 데이터를 입력받고 출력하는 데 사용되는 입출력 채널입니다. 운영체제는 기본적으로 세 가지 표준 스트림을 제공하며, 이들은 대부분 콘솔(터미널)과 연결되어 있습니다.

  • Standard Input
  • Standard Output
  • Standard Error

Standard Output의 리다이렉션

command > filename  
  • 표준 출력을 filenmae 으로 저장
  • 이미 존재하는 파일명일 경우 덮어씌워진다
command >> filename  
  • 덮어 씌우기를 원치 않을 경우 ">>" 연산자를 사용하여 기존 파일에 추가한다.

">>" 연산자를 사용할 경우 아래와 같이 기존 파일에 표준 출력값이 추가되는 것을 볼수 있다.

echo 명령어와 ">",">>"와 같은 연산자를 함께 사용해 리다이렉션을하면
쉽게 파일 생성 및 내용 추가를 할 수 있다,


Standard Input의 리다이렉션

cat 명령어를 아무런 인자값 없이 실행한다면 표준 입력을 기다리는 상태로 들어간다.
이러한 표준 입력을 리다이렉션으로 전달해 줄수 있다.

1) cat color.txt / 2) cat < color.txt

1번과 같은 경우 명령어에 인자값을 넣어준 형태.
2번과 같은 경우는 "<" 연산자를 사용해 표준 입력값을 cat 명령어에게 리다이렉션 해준 형태. 따라서 1번과 2번의 결과는 똑같다


Input과 Output 리다이렉션 동시에 사용하기

cat < aaa.txt > bbb.txt / 표준 입력을 리다이렉션하고 표준 출력을 리다리엑션한 형태

Standard Error의 리다이렉션

  • Standard Error의 리다이렉션을 처리할 때는 "2>" 연산자를 사용한다.
  • "2>>" 연산자를 사용시 추가가 된다.
  • "2>>" 숫자 2가 붙는 이유는 각 스트림의 파일 디스크립터 번호가 0,1,2 때문이다.
command 2> error.txt

표준 출력과 표준 에러 모두 리다이렉션 처리 할 경우 표준 출력을 먼저 리다이렉션을 해야함


1) command > ccc.txt 2> ccc.txt
2) command > ccc.txt 2>&1
1번과 2번은 같은 의미 
command &> ccc.txt / ccc.txt에 표준 출력과 표준 에러 라다이렉션을 모두 처리하겠다는 의미

0개의 댓글