기본적으로 명령어의 출력은 모니터다. redirection은 명령어의 출력을 변경하는 것이다.
즉 모니터가 아닌 파일에 입력할 수 있다.
<
: cat test.txt
와 cat < test.txt
는 같다.<<
: 지정된 문자가 입력되면 현재까지 입력된 것은 모두 표준출력한다.>
: 덮어쓰기>>
: 추가하기[command] < [file]
cat < /etc/resolv.conf #cat /etc/resolv.conf와 동일
주어진 파일의 내용을 cat
명령어의 입력으로 준다.
[command] 1> [file]
1
은 표준 출력장치, 즉 모니터를 지정하는 file descriptor다.
생략 가능하다.
ls -l > result.txt #ls -l의 결과를 result.txt에 기록
[command] >> [file]
명령어의 결과를 파일에 append한다.
[command] 2> [file]
find 명령어 입력 시 root만 접근할 수 있는 디렉토리에 접근하게 되면 오류 메시지를 내보낸다. 이를 모니터가 아닌 다른 파일로 돌려버리면 오류를 제외한 검색 결과를 볼 수 있다.
그런데 이렇게 하면 매번 파일을 만들어야 한다는 문제가 있는데, 이는 /dev/null
로 돌리면 해결된다. /dev/null
로 redirect된 내용은 저장되지 않으며, 이 파일은 항상 null
값을 갖는다.