$ cat a.txt > result.log 2>&1
위 명령어로 알아보는 표준 입력/출력/에러, 리다이렉트.
파일 디스크립터.
- 0 : 표준 입력.
- 1 : 표준 출력.(출력 디스크립터)
- 2 : 표준 에러.(출력 디스크립터)
표준입력.
- 기본은 키보드 입력.
- 표준 입력 장치 변경시 < 기호 사용.
$ cat a.txt
- cat 뒤에 나오는 첫번째 인자의 파일을 출력. a.txt 파일 내용을 출력.
- cat 뒤에 아무것도 입력하지 않고 실행하면? 표준입력장치(키보드)로 부터 입력받은 값을 출력.( <&0 이 생략 된 것임.)
$ cat input test input test print word print word = $ cat <&0 input test input test print word print word |
$ cat a.txt = a.txt 파일을 열어서 출력.
$ cat < a.txt = 표준 입력을 키보드가 아닌 a.txt 로 바꿔서 출력.
- 결과는 동일하지만 동작 방식이 다름.
표준 출력.
- 기본은 화면.
- 표준 출력 장치 변경시 > 기호 사용.
$ cat a.txt
- a.txt 의 내용이 화면에 출력.
$ cat a.txt > result.log
- a.txt 의 내용을 result.log 파일에 출력.
- 표준 출력 장치를 파일로 변경.
- 출력 디스크립터를 입력하지 않으면 기본적으로 표준 출력 디스크립터로 인식. (= $ cat a.txt 1> result.log)
표준 에러.
- 기본 출력은 화면.
$ cat err.txt
cat: err.txt: 그런 파일이나 디렉터리가 없습니다
$ cat err.txt 1> result.log
cat: err.txt: 그런 파일이나 디렉터리가 없습니다
- 표준 출력을 파일로 지정했기 때문에 에러는 화면에 그대로 출력.
$ cat err.txt 2> result.log
- 출력 디스크립터를 표준 에러로 설정 후 파일로 출력.
- 에러 내용이 result.log 파일에 출력됨.
표준 출력/에러를 한 파일에 출력하기.
$ cat a.txt > result.log 2>&1
- > : 표준 출력 장치 변경.(result.log 파일로 변경)
- 2> : 표준 에러 출력 장치 변경.(&1 로 변경)
- &1 : 표준 출력 장치 참조.(& : 참조, result.log 파일)
- 다음과 같이 사용해도 결과를 같을 것임.
$ cat a.txt 2> result.log 1>&2
※ 주의.
- 입/출력 장치 변경 시 <, > 기호에 붙여서 사용해야 함.
- $ cat a.txt 2 > result.log : a.txt 파일과 2 파일 내용을 result.log 파일에 출력하게 됨.
(cat: 2: 그런 파일이나 디렉터리가 없습니다 에러 발생.)
- $ cat a.txt > result.log 2> &1 : -bash: syntax error near unexpected token `&' 에러 발생.
- $ cat a.txt > result.log 2> 1 : 표준 에러를 1 파일에 출력.
'OS > Linux' 카테고리의 다른 글
awk 예제. (2) | 2014.03.24 |
---|---|
vi 단축키 모음 (0) | 2014.03.24 |
리소스(resource) 부하 테스트 (1) | 2013.11.22 |
탭 자동완성 설정. (1) | 2013.11.14 |
[Cent OS] mysql 설치. (0) | 2013.08.16 |