[Linux] Input & Ouput & Error Redirection
- Linux
- 2021. 3. 1.
이번 글에서는 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 |