프로필사진
DevOps 부트캠프 기록일지
DevOps_04_김재환
04_Study(리다이렉션)
04_Study(리다이렉션)

2023. 3. 9. 19:59부트캠프/DevOps (TIL)

리다이렉션(redirection)

컴퓨팅에서 표준 스트림을 사용자 지정 위치로 우회할 수 있는 다양한 유닉스 셸을 포함한 대부분의 명령어 인터프리터에 일반적인 명령이다. 방향 지정, 방향 변경으로도 부른다.

 

리다이렉션은 특정한 문자열들 명령어 사이에 두어서 추가되는 것이 보통이다. 일반적으로, 이러한 문자열들의 문법은 다음과 같다.

명령어1 > 파일1

위의 줄은 명령어1을 실행하며 이로써 나오는 출력물을 파일1로 내보낸다. 기존에 파일1의 존재하는 경우 기존의 파일 내용은 지우고 새롭게 추가된다.

 

파일의 끝에 출력물을 추가하려면 >> 연산자를 이용한다:

명령어1 >> 파일1

다음을 이용하면

명령어1 < 파일1

명령어1을 실행하되, 파일1이 입력의 대상이 된다. (자판을 이용하는 것과는 반대로)

명령어1 < 들어오는파일 > 나가는파일

위의 줄은 두 개의 기능을 수행한다: 명령어1 들어오는파일에서 내용을 불러들인 뒤 나가는파일에 기록한다.

 

예를 들어보자

$ ps aux > ps.txt
# 명령어 > 파일

ps aux 명령의 출력 결과를 ps.txt 파일에 저장합니다. 정확하게 말하자면, ps aux 의 출력 스트림을 ps.txt 이라는 파일로 전환하여 저장하는 것을 의미합니다. 따라서 아래 캡쳐와 같이 ps aux 의 명령의 결과는 콘솔이 아닌 ps.txt 파일에 기록됩니다.

반대의 경우도 가능합니다 예를 들어

$ head < ps.txt
# 명령어 < 파일

head 명령은 파일의 처음 부분을 설명한 라인(line)만큼 출력하는 명령입니다. 기본값으로 10줄이 세팅 되어 있습니다. 따라서 위의 명령을 실행하면 아래 캡쳐본과 같이 ps.txt 의 처음 10줄을 head 의 입력 스트림으로 전환하여 보내게 됩니다.

조금 더 응용하자면 다음과 같이 사용할 수도 있습니다.

$ head < ps.txt > sample.txt
# 명령어1 < 들어오는 파일 > 나가는 파일
  1. ps.txt 의 내용을 head 명령의 입력 스트림으로 전환하여 전송합니다.
  2. head 명령은 입력 받은 ps.txt 의 내용에서 처음 10줄을 출력합니다.
  3. head 명령의 출력 스트림을 sample.txt 파일에 연결합니다.
  4. head 명령의 출력 스트림은 결과를 sample.txt 파일에 저장합니다.

이와 같은 기호를 정리하면 아래와 같습니다.

 

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

 

 

출처

https://ko.wikipedia.org/wiki/%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%EC%85%98