화면 갈 출력을 파일로
cmd > file 은 stdout 을 file 로 보내고 기존 내용을 날려. cmd >> file 은 끝에 append. 화면은 비어 — 프로그램이 stderr 에도 쓰지 않는 한.
Truncate vs append
>— 덮어쓰기. cmd 실행 전에 파일을 0 으로 비움.>>— append. 기존 내용 유지.
truncate 은 일찍 일어나 — cmd 가 즉시 실패해도 파일은 이미 비워졌어. 새로 쓰거나 실패하길 원하면 set -o noclobber + >| 사용 (아래 callout 참고).
파일에서 stdin 으로
cmd < file 이 파일 내용을 cmd 의 stdin 으로 보내. wc -l < lines.txt 가 cat 안 띄우고 줄 수 세. sort < data.txt, tr a-z A-Z < input.txt 가 표준 패턴.
Redirection 합치기
쌓을 수 있어: cmd < in.txt > out.txt 2> err.txt. 다른 fd 는 순서 무관, 같은 fd 는 순서 중요: cmd > out.txt 2>&1 은 stderr 를 stdout 의 현재 목적지로 (= out.txt). cmd 2>&1 > out.txt 는 stderr 를 원래 stdout (=화면) 으로 보내고 그 후에 stdout 만 out.txt 로 — 결과 다름.