셸 의 '2 > & 1' 의 의미

예: nohup/mnt/nand 3/H200G  >/dev/null  2>&1  &       & 1 에 대해 더 정확히 말 하면 파일 설명자 1 이 고 1 은 보통 stdOUT 를 대표 합 니 다.FILENO, 실제로 이 조작 은 dup 2 (2) 호출 입 니 다. 그 는 all 로 표준 출력 합 니 다.result, 그리고 표준 출력 을 파일 설명자 2 (stdERR FILENO) 로 복사 합 니 다. 그 결 과 는 파일 설명자 1 과 2 가 같은 파일 시트 항목 을 가리 키 는 것 입 니 다. 잘못된 출력 이 합 쳐 졌 다 고 할 수 있 습 니 다. 그 중에서 0 은 키보드 입력 1 은 화면 출력 2 가 잘못된 출력 을 표시 합 니 다. 표준 오 류 를 표준 출력 으로 바 꾼 다음/DEV/NULL 아래로 던 집 니 다.모든 표준 출력 과 표준 오 류 를 쓰레기통 에 버 리 는 것 이 통속 적 이다.      command >out.file  2>&1 &      command > out. file 은 command 의 출력 을 out. file 파일 로 재 설정 합 니 다. 즉, 출력 내용 을 화면 에 인쇄 하지 않 고 out. file 파일 에 출력 합 니 다.2 > & 1 은 표준 오 류 를 표준 출력 으로 바 꾸 는 것 입 니 다. 이 표준 출력 은 out. file 파일 로 바 뀌 었 습 니 다. 표준 오류 도 out. file 파일 로 출력 할 것 입 니 다.마지막 &, 이 명령 을 백 스테이지 에서 수행 하 게 하 는 것 입 니 다.             2 > 1 은 무엇 을 의미 하 는 지, 2 와 > 는 오 류 를 결합 하여 방향 을 바 꾸 는 것 을 의미 하 며, 1 은 오 류 를 표준 출력 이 아 닌 파일 1 로 바 꾸 는 것 을 의미 합 니 다.2 > & 1 로 바 꾸 면 표준 출력 을 의미 합 니 다. 오류 가 표준 출력 으로 바 뀌 었 습 니 다. ls 2 > 1 로 테스트 해 보 세 요. 2 파일 이 없 는 오 류 는 보고 하지 않 지만 빈 파일 1 을 출력 합 니 다.   ls xxx 2 > 1 테스트, xxx 이 파일 의 오류 가 1 에 출력 되 지 않 았 습 니 다.   ls xxx 2 > & 1 테스트, 1 이 파일 을 생 성하 지 않 지만 표준 출력 으로 오류 가 발생 했 습 니 다.   ls xxx > out. txt 2 > & 1, 실제 ls xxx 1 > out. txt 2 > & 1 로 바 꿀 수 있 습 니 다.리 셋 기호 > 기본 값 은 1 입 니 다. 오류 와 출력 이 out. txt 로 전 달 됩 니 다.
[root@localhost:~]$ ls 555 >22.txt 2>&1
[root@localhost:~]$ cat 22.txt
ls: 无法访问555: 没有那个文件或目录
[root@localhost:~]$ ls 555 >22.txt
ls: 无法访问555: 没有那个文件或目录
[root@localhost:~]$ cat 22.txt
[root@localhost:~]

      왜 2 > & 1 을 뒤에 써 야 합 니까?      command > file 2>&1        먼저 command > file 에서 표준 출력 을 file 로 재 설정 합 니 다. 2 > & 1 은 표준 오류 로 표준 출력 을 복사 한 행위 입 니 다. 즉, 같은 파일 로 재 설정 되 었 습 니 다. 최종 결 과 는 표준 출력 과 오류 가 file 로 재 설정 되 었 습 니 다.       command 2>&1 >file       2 > & 1 표준 오류 로 표준 출력 행 위 를 복 사 했 지만 이 때 표준 출력 은 터미널 에 있 습 니 다. >file 후 출력 이 file 로 바 뀌 었 지만 표준 오 류 는 터미널 에 남아 있 습 니 다.

좋은 웹페이지 즐겨찾기