[Linux] Input & Ouput & Error Redirection

반응형

이번 글에서는 Linux에서 Input & Ouput & Error 를 Redirection 하는 방법에 대해 알아보겠습니다.

1. Redirection

linux의 bash shell 은 사용자들에게 input & output & error 에 대한 redirection 을 허용하는 유연함을 제공합니다.

이를 통해 progams 혹은 commands 가 default source 혹은 default destination 이외의 곳으로 자유롭게 값을 읽어들이거나 쓰거나 할 수 있습니다.

1-1) redirecting standard input

redirecting standard input 는 keyboard 의 입력값이 아닌.. alternative source 를 input 으로 사용합니다.

standard input redirectring 에는 '<' 를 사용합니다.

예를 들어 다음과 같이 입력하면

cat < file2 

cat 명령어는 input 으로 file2 를 읽어들인 뒤 표준출력으로 file2 의 내용을 console 에 출력합니다.

input redirection 으로 따로 input 을 지정하지 않은 경우.. cat 명령어의 default input 은 keyboard 입니다.

1-2) redirecting standard output

redirecting standard output 는 command 의 결과값을 console 이 아닌.. alternative destination 으로 write 합니다.

standard output redirecting 에는 '>' 를 사용합니다.

예를 들어 다음과 같이 입력하면

ls > file1

ls command 의 결과값이 console 로 출력되는 것이 아닌.. file1 으로 쓰여지게 됩니다.

이때의 주의점으로는 '>' 는 항상 해당 파일에 값을 overwrite 한다는 것 입니다.

만약 overwrite 이 아닌 append 를 하고 싶을 경우.. '>>' 를 사용하면 됩니다.

ls >> file1

1-3) redirecting standard error

redirecting standard error 는 generated 된 error 를 alternative destination 으로 wrtie 합니다.

❗️ linux 에서 error 는 2 로 표현됩니다.

예를 들어 아래와 같이 입력하면

find / -name core -print 2> /dev/null

위 명령어는 core 라는 이름의 file 을 / 경로에서 부터 찾으면서.. 발생하는 error 를 /dev/null 로 wrtie 합니다.

❗️linux 에서 /dev/null 은 discard data 를 wrtie 할 때 사용합니다.

이때 만약 error 가 발생하지 않을 경우 /dev/null 에는 아무값도 쓰여지지 않습니다.

1-4) redirecting both standard ouput & error

standard output 과 error 를 동시에 하나의 파일에 write 하는 방법도 존재합니다.

redirecting both standard output & erorr 는 '&>' 를 사용합니다.

예를 들어 다음과 같이 입력하면

ls /nothing &> test

test 라는 파일에 ls /nothing command 의 output 과 error results 가 wrtie 됩니다.


반응형

'Linux' 카테고리의 다른 글

[Linux] Pipe  (0) 2021.03.01
[Linux] Grep  (0) 2021.03.01
[Linux] Link  (0) 2021.03.01
[Linux] Wild Card  (0) 2021.03.01
[Linux] Command History  (0) 2021.03.01

댓글

Designed by JB FACTORY