Linux Redirection & Pipeline

(Last Updated On: November 28, 2019)

Linux Redirection

리눅스 리다이렉션과 파이프라인 모르면 안된다.
아래 내용을 보면, 그냥 > 만 쓰면 오류 출력 안해서 곤란할 때 있음.

[command] > [file]

command 명령의 표준 출력(stdout)을 재지정함. file 엔 덮어씌움 (overwrite)

[command] >> [file]

command 명령의 표준 출력(stdout)을 재지정함. file 엔 내용을 추가함 (append)

 

[command] 2> [file]

command 명령의 표준 오류출력(stderr)을 재지정함. file 엔 덮어씌움 (overwrite)

[command] 2>> [file]

command 명령의 표준 오류출력(stderr)을 재지정함. file 엔 내용을 추가함 (append)

 

[command] 2> [file]

command 명령의 표준 오류출력(stderr)을 재지정함. file 엔 덮어씌움 (overwrite)

[command] 2>> [file]

command 명령의 표준 오류출력(stderr)을 재지정함. file 엔 내용을 추가함 (append)

 

[command] &> [file]

command 명령의 표준 출력 및 오류 (stderr+stderr)을 재지정함. file 엔 덮어씌움 (overwrite)

[command] &>> [file]

command 명령의 표준 출력 및 오류 (stderr)을 재지정함. file 엔 내용을 추가함 (append)

 

[command] < [file]

command 명령의 표준입력을 file로 지정함.
file 의 내용이 전부 입력된다.
파이프라인(|) 과의 차이점이라하면, 이건 입력이 파일뿐이란 점?

 

2>&1

POSIX 쉘에서 사용. 관용구 ( &> 와는 다름 )

UNIX 시스템에선 모든 것이 파일임.
표준 출력에서는 보이지 않는 File Descriptor 가 있다.
1 : stdout
2 : stderr
그냥 이거 쓰는게 좋음

 

Linux Pipeline

[command1] | [command2]

파이프라인은 리눅스 명령(1)의 표준 출력(stdout)을 다른 명령어(2)의 표준입력(stdin)으로 전달함.
오류(stderr)는 전달안되나보제

리눅스 리다이렉션

대충 이런 느낌