파일 기술자는 0, 1, 2 표준 입력 , 출력 , 에러를 의미.

command 2 > errfile;

파이프와 역따옴표도 표준 출력을 재지정하는데 사용할 수 있다.
그러나 파이프와 역따옴표에는 지정된 파일명이 없기 때문에 '2>' 같은 재지정을 할 수 없다.
파일 기술자와 연결된 파일명을 모르는 상황에서도 파일 기술자의 연결을 재배열해야 할 때가 있다.

표준 출력과 표준 에러를 파이프나 역따옴표로 보내는 법

본셸 의 n>&m 연산자는 파일과 파일 기술자 를 재배열하는데 사용한다.
쉽게 설명하면 파일 기술자 m 이 가리키는 파일을 파일 기술자 n도 동일하게 가리키도록 한다.

commnad 2>&1
2>&1 은 표준 에러를 표준 출력이 출력되는 곳으로 보내라는 것.

표준 출력과 표준 에러를 교환하려면 표준 에러를 파이프로 보내고 표준 출력을 화면으로 보내면 되겠구나 라는 생각으로

command 2>&1 (표준 에러를 화면) 1>&2 | (표준 출력을 파이프)
-> 이렇게 하면 안됨
-> 명령행을 왼쪽에서 오른쪽으로 처리하기 때문에

2>&1 을 실행후에 1>&2 를 실행  
이렇게 하면 표준 출력은 자기 자신을 재지정하는 샘이 된다.
따라서 표준 출력 , 표준 에러 모두 파이프로 전달된다.

이런 문제는 파일 기술자 3~9번을 사용하면 쉽게 해결할 수 잇다.

command 3>&2 2>&1 1>&3 | ...

열린 파일을 닫으려면
표준 입력을 닫기 위해선 m(파일기술자)<&-
표준 출력을 닫기 위해선 m(파일기술자)>&0