티스토리 뷰

리눅스

리눅스 Redirection 및 Pipe

금전 2018. 3. 19. 21:12

입출력 재지정 관련 명령어 - Redirection, Pipe

커맨드라인으로 입력되는 명령어들을 더 효율적으로 활용하기 위해 사용한다.

 

Redirection (재지정)

1. Output Redirection (출력 재지정)

2. Input Redirection(입력 재지정)

 

 

Output Redirection

 

$ 명령어 > 파일

- 출력 재지정을 이용하면 명령어의 표준출력 내용을 모니터에 출력하는 대신에 파일에 저장할 수 있다. (모니터 X <- 명령어 -> 파일)

- 출력 재지정 기호는 >이다.

 

ex) cat > a.txt

cat 명령어를 사용했고, 입력한 내용이 모니터에 출력되지 않고 파일이 새로 생성되는 것을 알 수 있다.

 

만약, 파일이 원래 존재하는 경우 > 기호를 사용하면 기존 파일의 내용이 사라지고 새로 출력받은 내용이 저장된다.

내용이 B인 파일 b.txt가 있다.

이 때 cat a.txt > b.txt를 입력하면, a.txt의 내용이 덮어쓰기되어 b.txt의 기존 내용이 아예 사라진다.

 

 

확인해보니, 기존의 내용 B가 아닌 A가 출력됨을 확인할 수 있다.

 

$ 명령어 >> 파일

- 출력 추가 >>는 명령어의 표준출력 내용을 모니터에 출력하는 대신, 기존 파일에 추가한다.

- 파일이 없으면 파일을 새로 만들고, 기존 파일이 존재하면 기존 파일에 내용이 추가된다.

 

b.txt 파일이 있을 경우와 없을 경우를 나눠서 보자.

b.txt 가 없을 때 cat a.txt >> b.txt를 입력하면 새로운 b.txt 파일이 생긴다.

이 때 b.txt의 파일은 a.txt의 내용과 같다.

 

A라는 내용이 저장된 b.txt파일이 이미 존재한다.

이 때 cat a.txt >> b.txt를 입력하면 기존 b.txt파일에 a.txt파일의 내용이 추가된다.

확인해보면

A

A

이 내용이 저장되어 있고, 이는 기존 파일 내용에 a.txt파일의 내용이 추가된 것이다.

 

$ cat a.txt b.txt > c.txt

이런 형태로 응용해서 사용할 수 있다. 이 때 $cat a.txt b.txt c.txt > d.txt형식도 가능하다.

a.txt와 b.txt의 내용이 연결되어 새로운 c.txt파일이 생성되었음을 확인할 수 있다.

 

Input Redirection

 

$ 명령어 < 파일

명령어의 표준입력을 키보드에서 받는 대신에 파일에서 받을 수 있다.

 

예를 위해 wc 명령어를 사용한다.

wc 명령어는 줄/단어/문자수를 세서 출력해주는 명령어다.

위에서

A

라고 저장된 a.txt 파일을 생성했었다. 이 때 입력된 문자는 A와 엔터이므로 문자수가 2임을 유의하자.

 

A

의 내용이 저장되어 있었으므로, 줄 1 단어 1 단어수 2를 출력해줬다.

 

 

$ 명령어 << 파일 (문서 내 입력)

입력기호 <<를 사용하면 이 명령어는 << 기호 다음의 단어가 다시 나타날 떄까지의 내용을 입력으로 받는다.

 

예를 들어서

wc << test라고 입력하면, test가 나타날 때까지의 입력 내용이 wc의 입력이 되는 것이다.

 

hi와 엔터를 입력하였으므로 문자수 3임을 유의하자.

 

다시 정리하면,

* 출력 재지정은 표준출력 내용을 파일에 저장하고, 입력 재지정은 표준입력을 파일에서 받는다. 

 

Pipe

 

$ 명령어 1 | 명령어 2

한 명령어의 표준 출력을 다른 명령어의 표준입력으로 받을 수 있다.

파이프 기호 |를 사용하면, 명령어1의 표준출력은 명령어2의 표준입력이 된다.

 

ls 명령어는 해당 디렉터리의 안의 파일 목록을 출력해주는 명령어다.

ls 명령어가 sort의 입력이 되어 파일의 목록들이 정렬되어 출력되는 것을 확인할 수 있다.

 

입출력 재지정 관련 명령어

명령어 > 파일

표준출력을 파일로 지정 

 명령어 >> 파일

표준출력을 파일에 추가

 명령어 < 파일

표준입력을 파일로 재지정

명령어1 | 명령어2

 명령어1의 표준출력이 파이프를 통해 명령어 2의 표준입력이 됨

 cat 파일1 파일 2 > 파일3

 파일1과 파일2를 연결하여 파일3을 만든다

 

이처럼 리다이렉션과 파이프을 사용하면 리눅스의 다양한 명령어들을 더 효율적으로 활용할 수 있으므로 개념을 정확히 이해하자.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함