> &는 무엇을 의미합니까?
이 표현에 약간 혼란 스러웠습니다.
gcc -c -g program.c >& compiler.txt
&>filename
stdout과 stderr을 모두 file로 리디렉션한다는 것을 알고 있습니다 filename
. 그러나이 경우 앰퍼샌드는보다 큼 기호 뒤에 있습니다. M>&N
, where M
and N
are file descriptors 형식처럼 보입니다 .
위의 스 니펫에서 does M=1
and N='compiler.txt'
? 이것이 정확히 어떻게 다른지 :
gcc -c -g program.c > compiler.txt (ampersand removed)
내 이해는 각 열린 파일이 2보다 큰 파일 설명자와 연관되어 있다는 것입니다. 이것이 맞습니까?
그렇다면 파일 이름이 리디렉션 대상인 파일 설명자와 상호 교환 될 수 있습니까?
이것은 &>
. bash 맨 페이지에서 :
표준 출력 및 표준 오류 리디렉션이 구조를 사용하면 표준 출력 (파일 설명자 1)과 표준 오류 출력 (파일 설명자 2) 모두 이름이 단어 확장 인 파일로 리디렉션 될 수 있습니다.
There are two formats for redirecting standard output and standard error: &>word and >&word Of the two forms, the first is preferred. This is semantically equiva- lent to >word 2>&1
&>
vs >&
: 선호하는 버전은 &>
(clobber)
에 관해서:
&>
>&
둘 다 파일을 방해합니다 > file
. STDIN 전용의 경우 처럼 파일에 쓰기 전에 파일을 0 바이트로 자릅니다 .
그러나 의 bash
수동 리디렉션 섹션 이 추가한다 :
두 가지 형식 중 첫 번째 형식이 선호됩니다. 이것은 의미 적으로 다음과 같습니다.
>word 2>&1
두 번째 형식을 사용할 때 단어 가 숫자 또는
-
. 그렇다면 호환성을 위해 다른 리디렉션 연산자가 적용됩니다 (아래 파일 설명자 복제 참조).
(참고 : 에 zsh
모두 동일합니다 .)
다음 &>
과 같은 이유로 첫 번째 ( ) 형식으로 손가락 메모리를 얻는 것이 좋습니다 .
지원 되지 않는 용도 &>>
로 사용 (추가)>>&
bash
추가 양식은 하나뿐입니다.
표준 출력 및 표준 오류를 추가하는 형식은 다음과 같습니다.
&>>word
이것은 의미 적으로 다음과 같습니다.
>>word 2>&1
(아래의 파일 설명자 복제 참조).
노트 :
- 를 추가하는 방법이 한 가지뿐이므로 위 섹션에서
&>
over 의 클로버 사용을>&
다시 권장bash
합니다. zsh
&>>
및>>&
양식을 모두 허용합니다 .
참고 URL : https://stackoverflow.com/questions/11255447/what-does-mean
'code' 카테고리의 다른 글
C # 속성 및 참조 매개 변수, 왜 설탕이 없습니까? (0) | 2020.11.02 |
---|---|
요소 높이와 너비를 기준으로 X 및 Y 백분율 값을 번역 하시겠습니까? (0) | 2020.11.02 |
iOS 앱 충돌, 디버깅 할 때 xcode에서 'X의 iPhone 연결이 끊어졌습니다'라고 표시됨 (0) | 2020.11.02 |
Docker Swarm은 볼륨 공유를 어떻게 구현합니까? (0) | 2020.11.02 |
C # 사전 : 선언을 통해 키 대 / 소문자를 구분하지 않도록 만들기 (0) | 2020.11.02 |