Linux2009. 6. 19. 23:12
일반적으로 많이 사용하는 리다이렉션은

>  - 파일에 저장(새로파일 생성)
<  - 파일에서 불러옴
|  - 파이프라인, 결과를 이어줌
>> - 파일에 저장(기존파일에 이어서 붙임)
이정도이고, 잘 사용되지는 않지만 유용한 것으로는

2>  - 에러만 파일에 저장
정도가 있다.
>는 stdout 만 리다이렉션해서 화면으로는 에러가 출력되고
2>는 stderr 만 리다이렉션해서 화면으로는 정상 메시지가 출력된다.

둘다 리다이렉션해서 파일로 저장하고 싶다면

2>&1
이렇게 하면 된다.
예를 들어 컴파일시 모든 메시지를 저장하고 싶다면
$ make install 1> err.log 2>&1
라고 하면 된다.

> word
    The standard output (file descriptor 1) is sent to the file word which is created if it does not already exist.

>> word

    The standard output is sent to file word. If the file exists then output is appended (by seeking to the end); otherwise the file is created.

< word

    The standard input (file descriptor 0) is taken from the file word.

<< word

    The standard input is taken from the lines of shell input that follow up to but not including a line consisting only of word. If word is quoted then no interpretation of the document occurs. If word is not quoted then parameter and command substitution occur and \ is used to quote the characters \ $ ` and the first character of word. In the latter case \newline is ignored (c.f. quoted strings).

>& digit

    The file descriptor digit is duplicated using the system call dup (2) and the result is used as the standard output.

<& digit

    The standard input is duplicated from file descriptor digit.

<&-

    The standard input is closed.

>&-

    The standard output is closed.

[링크 : http://www.partmaps.org/era/unix/shell.html]

<&Digit      Duplicates standard input from the file descriptor specified by the Digit parameter
>& Digit     Duplicates standard output in the file descriptor specified by the Digit parameter
<&-          Closes standard input
>&-          Closes standard output
<&p          Moves input from the co-process to standard input
>&p          Moves output to the co-process to standard output

[링크 : http://www.softpanorama.org/Scripting/Shellorama/input_and_output_redirection.shtml]

Posted by 구차니