2009. 12. 3. 21:02

n >&m: 표준출력과 표준에러를 서로 바꾸기.

2>&1는
 표준 출력의 전달되는 곳으로 표준에러를 전달하라라는 의미.
이것은 Bourne 연산자이기 때문에 csh에서는 사용할 없습니다.


Redirection(방향전환) 에 대해 알아보시면 도움이 되리라 생각됩니다.

일반적인 데이타 흐름을 전환한다고 생각하시면되고 
사용법은 ">" ">>" "<" 등등이 있습니다.

[linux]$ ls > aaa.txt 하게 되면 ls 내용이 aaa.txt란 파일로 저장됩니다.

DATA 의 흐름
stdin   - 키보드  (표준입력)

stdout - 모니터  (표준출력)
stderr  - 모니터  (에러출력)

> : stdout 만을 보내는걸 말합니다.
< : stdin 파일로 부터 데이타를 받는걸 말합니다.
>> : 파일내용뒤에서부터 이어져 저장됩니다.
2> : stderr 만을 보냅니다.

예제를 들어 설명해보죠..

# cat > std   --> 키보드로 부터 입력받아 std라는 화일로 저장
> ......
> <ctrl><d>    
--------------------------
# cat >> std  --> 기존의 내용 뒤에 추가함
--------------------------
# ls
std
# ls std err > ss  --> 에러메세지를 제외하고 명령어가 정상종료된 메
세지만 저장
ls: err: No such file or directory -->저장안됨
std                                -->저장됨
       
# ls std err 2> ss2  --> 에러메세지만을 저장
ls: err: No such file or directory -->저장됨
std                                -->저장안됨

# ls std err > ss3 2>&1 -->에러와 정상출력 모두 저장

---------------------------
# cat < du  = # cat du    --> 두 명령어의 의미는 같다


여기서 2>&1 이란 stderr 와 stdout 모두를 보내란 뜻입니다.
즉 script.sh > /dev/null 2>&1 는 모든 출력(에러출력과 정상출력)
을 /dev/null 로 보내란 뜻이 되겠네요 



'Linux' 카테고리의 다른 글

[CentOS]Consol Network 설정  (0) 2010.05.26
Job 스케줄링  (0) 2010.05.18
솔라리스 디렉토리  (0) 2010.05.14
자주가는 Programming 링크 모음  (0) 2010.01.03
리눅스 배포판 확인  (0) 2009.12.03
Posted by devanix