Redirection

CHAE·2024년 4월 19일

Linux

목록 보기
7/8

Data Stream

우리는 운영체제와 쉘을 통해 대화한다. 우리의 명령을 전달받은 운영체제는 컴퓨터로 명령을 내리는데 이 때 명령 또는 결과를 데이터라고 볼 수 있다.

이렇게 운영 체제를 통해 컴퓨터 기계 장치로 향하는 데이터를 입력 데이터라고 한다. 반대로, 컴퓨터 기계 장치에서 운영 체제를 통해 우리에게 전달되는 데이터는 출력 데이터라고 한다.

이 때 입력되는 방향, 출력되는 방향을 데이터가 흘러간다고하여 Data Stream이라고 표현한다.
리눅스의 표준 데이터 스트림은 3가지로 정의할 수 있다.

표준 입력 : Standard Input Stream 0
표준 출력 : Standard Output Stream 1
표준 에러 : Standard Error Stream 2

File Descriptor : 0,1,2


방향 전환

cat 명령어를 통해 ddochi_test 파일을 읽게 되면 파일의 내용이 화면에 출력(표준 출력)된다. 하지만 리다이렉션을 사용하게되면 출력이 되는 방향을 바꿀 수 있다. 리다이렉션을 이용하는 경우 기존의 데이터는 삭제된다는 특징이 있다.

/* cat 출력을 ddochi_test > jinwoo 파일로 리다이렉션 */
cat ddochi_test > jinwoo

/* 기존의 데이터가 지워지지 않고 그 아래에 추가되기를 원한다면 */
cat doochi_test >> jinwoo

위와 마찬가지로 에러 메시지도 리다이렉션을 할 수 있다.
2>

/* 에러 메시지를 화면에 출력하지 않고 표준 에러를 리다이렉션 (예 */
find / -name "ddochi.txt.gz" 2> /tmp/error_msg

/* 에러 메시지를 다른 파일에 저장하지 않고 쓰레기통으로 옮기고 싶다면 */
find / -name "ddochi.txt.gz" 2> /dev/null <- 쓰레기통

0개의 댓글