
리눅스에서 출력 결과를 특정 위치로 보내거나 입력을 특정 위치에서 받는 기법
보통 터미널 화면에 결과를 출력하거나 키보드로 입력을 받지만, 리다이렉션을 사용하면 이를 파일이나 다른 프로그램으로 전환할 수 있다.

> : 표준 출력을 지정된 파일로 보낸다. 파일이 이미 존재하면 덮어쓰기를 한다.
>> : 표준 출력을 지정된 파일로 보내지만, 기존 내용에 추가한다.
< : 표준 입력을 지정된 파일로부터 받는다.
2> 표준 에러를 지정된 파일로 보낸다.
cmd1 | cmd2 : 명령의 표준 출력을 다른 명령의 표준 입력으로 전달하기 위해 사용하는 기호이다.
실행 중인 프로세스가 파일을 참조하기 위해 사용하는 숫자이다.
리눅스에서는 모든 것을 파일로 취급하기 때문에 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr) 역시 파일로 간주되며 각각 0, 1, 2의 파일 디스크립터를 가지고 있는다.
stdin : standard input (0) : 입력
stdout : standard output (1) : 정상 결과 출력
stderr : standard error (2) : 오류 내용 출력 (출력은 동일하나, 정상 출력과 오류 출력을 구분)
~$ find / -name "*.txt" 1>& a.txt
시스템 전체에서 .txt 확장자를 가진 파일을 찾아서 그 결과를 a.txt 파일로 리다이렉션 한다.
1>&는 표준 출력(디스크립터 1)을 a.txt로 보내는 것을 의미한다.
~$ ls -al -KnockOn 1> b.txt 2> a.txt
현재 디렉터리의 상세 리스트를 보여주는 ls -al 명령어의 결과를 b.txt로 보내고, 만약 에러가 발생한다면 그 에러 메시지를 a.txt로 보낸다.
1>는 표준 출력을, 2>는 표준 에러를 의미한다.
리다이렉션 > 와 파일 디스크립터 1로 지정해서 명령어의 실행 결과를 파일로 저장하도록 지정한다.
> 하나만 사용했을 경우 기본값인 1> 과 결과가 동일하다.
~$ ls -knockOn > c.txt 2>&1
ls 명령어의 결과를 c.txt로 보내고 표준 에러(2)도 표준 출력(1)과 같은 위치로 보낸다
즉, 명령어 실행 시 발생하는 모든 출력과 에러 메시지가 c.txt에 기록된다.