본문 바로가기
리눅스

[리눅스 명령어] 입출력 재지정 Redirection

by LibRat 2021. 9. 8.
반응형

 

키보드 같은 표준 입력 장치가 아닌 파일 등으로 재지정하는것을 입력 재지정이라고 하고

명령어의 실행결과나 에러메시지같이 화면에 출력되는 것을 파일 등에 저장하는 것을 출력 재지정이라고 합니다

입출력 재지정은 <,>이용하여 표시합니다 <,>앞에는 프로그램의 입출력 용도를 의미하는 fd번호를 기입합니다 이때 <,>를 fd번호와 반드시 붙여서 사용합니다.

 fd  이름   용도   표준장치 
0   stdin   명령어에 입력될 내용을 저장   키보드 
1   stdout   명령어에서 출력될 내용을 저장   화면 
2   stderr   명령어에서 출력될 에러메시지를 저장  화면 

 

 형식 내용 
명령어 fd 번호 < 파일  명령어에서 기본지정된 파일이나 표준 입력장치가 아닌 재지정된 파일에서 데이터를 입력받는다.
명령어 fd 번호 > 파일 명령어에서 기본지정된 파일이나 표준 출력장치가 아닌 재지정된 파일에서 데이터를 출력받는다.

 보통 입출력 재지정을 사용할때 <,>앞에 있는 fd번호를 생략할수 있습니다.

 대부분의 쉘은 stdin, stdout, stderr에 대한 기본적인 재지정을 제공합니다.

 

입력재지정은 키보드등 표준입력 장치로부터 처리할 데이터를 다른 파일등으로 입력받도록 재지정하는 것으로 <를 사용합니다. 0은 생략가능하므로 일반적으로 <만 사용합니다.

 

<예제

대문자를 소문자로 변경하여 출력하는 명령어

 

 

출력재지정은 명령어의 실행 결과가 화면 등 표준 출력 장치로 출력되는 것을 파일등으로 저장 및 출력하도록 재지정하는것으로 >를 사용합니다. 1은 생략가능하므로 일반적으로 >만 사용합니다.

 

>예제

입력한 글자가 출력되는 명령어

 

 

 

 >이후 이름이 같은 파일이 있으면 기존파일을 덮어쓰기 때문에 주의해야합니다.

기존파일의 내용에 새로운 내용을 추가할때는 >>를 사용합니다.

 기존의 파일이 없으면 생성하고 이후 같은 명령어를 수행시 추가되는 내용만 계속 추가합니다.

 

에러재지정은 명령어 실행에서 에러가 발생했을때 화면 같은 표준 출력 장치로 출력되는 에러 내용을 파일등으로 저장 및 출력하도록 재지정하는 것입니다. 출력재지정처럼 >를 사용하는데 >기호앞에 fd번호 2를 반드시 기입해줘야합니다.

 

2>예제

ls 옵션에 _를 붙여 오류를 만들었습니다.

 

 

 출력과 에러 메시지가 동일한 파일에 출력되도록 재지정해야하는 경우가 있을수 있는데 이런 경우에는 명령어의 중복을 막기 위해 >&를 이용할수 있습니다.

 >& 기호앞에 fd 번호 1은 생략가능하지만 >&기호뒤의 fd번호는 생략이 불가능합니다

반응형

'리눅스' 카테고리의 다른 글

[리눅스 명령어] cp (복사)  (0) 2021.09.08
[리눅스 명령어] chgrp  (0) 2021.09.08
[리눅스 명령어] chown  (0) 2021.09.08
[리눅스 명령어] chmod  (0) 2021.09.08
[리눅스 명령어] 파이프 pipe  (0) 2021.09.08