리눅스

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

LibRat 2021. 9. 8. 16:34
반응형

 

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

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

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

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

 

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

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

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

 

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

 

<예제

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

 

 

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

 

>예제

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

 

 

 

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

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

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

 

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

 

2>예제

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

 

 

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

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

반응형