보통 파일하나 만들때
cat /dev/null > a.txt
라고 하면 0byte 짜리 a.txt 파일이 생기잖아요...
근데, 뒤에 2>&1 은 뭐죠?
어떨때 사용하는 건가요?
shell redirection 을 공부하시면 됩니다 . man bash
간단하게 얘기하면
1 은 standard out - 표준출력
2 는 standard error - 표준 에러
2>&1 은 표준 에러를 표준 출력으로 redirection 하는 거지요.
예를 들면
$ echo hi > hi.txt // 1> hi.txt 에서 1을 생략해도 됩니다. 표준 출력을 hi.txt 에 저장
$ cat hi.txt
hi
$ cat hi.txt > /dev/null // 표준 출력을 /dev/null 로 리다이렉션합니다. 결과없음
$ rm hi.txt // hi.txt 를 지웁니다
$ cat hi.txt
cat: hi.txt: No such file or directory // 에러출력입니다.
$ cat hi.txt >/dev/null
cat: hi.txt: No such file or directory // 위와 같은 에러
$ cat hi.txt > /dev/null 2>&1 // 표준 에러를 표준 출력으로 redirection
$ // 아무런 출력이 없습니다.
$ rm hi.txt
$ rm hi.txt
rm: cannot remove `hi.txt': No such file or directory
$ rm hi.txt > hi_err.txt 2>&1 // 위의 에러를 표준 출력으로 돌려 hi_err.txt 로 저장
$ cat hi_err.txt
rm: cannot remove `hi.txt': No such file or directory
$
-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===
Re: /dev/null 2>&1 이게 뭐죠?
shell redirection 을 공부하시면 됩니다 . man bash
간단하게 얘기하면
1 은 standard out - 표준출력
2 는 standard error - 표준 에러
2>&1 은 표준 에러를 표준 출력으로 redirection 하는 거지요.
예를 들면
-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===
[quote]cat /dev/null > a.txt [/quote]
/dev/null의 내용을 Standard out으로 출력해서 a.txt에 담는다.
cat /dev/null 을 수행하면서 나타나는 Standard out의 결과를 a.txt에 담고, Standard Error의 내용도 a.txt에 담는다.
는 stderr의 출력을 Redirection한 내용입니다.
http://wiki.kldp.org/wiki.php/DocbookSgm
http://wiki.kldp.org/wiki.php/DocbookSgml/Bash-Prog-Intro-HOWTO#AEN55
----
http://nohmad.tumblr.com/
댓글 달기