“>”명령의 올바른 이름은 무엇입니까


38

>명령을 사용하여 이미 존재하는 내용을 덮어 쓰지 않고 텍스트를 파일에 전달하는 방법을 찾으려고 했지만 그 이름을 모른다는 것을 깨달았습니다. 검색 오른쪽 화살표 또는 권리 갈매기보다 더 많은 명령은 아무것도 표시하지 않았다. 나는 항상 방금 전달했다 .

답변:


53

>명령이 아니라 파일 설명자 리디렉션입니다. 이는 쉘이이 지정을 구문 분석하고이를 명령 행에서 제거하고 시작된 새 프로세스의 환경을 변경 함을 의미합니다. 새로운 프로세스는 명령 행의이 부분을 인식하지 못합니다. 그것이 처음, 끝 또는 사이에 어디에나 넣을 수있는 이유입니다.

에서 REDIRECTION블록을 찾으십시오 man bash.

기존 파일에 추가하려면을 사용해야 >>합니다.


옵션 noclobber이 설정되면 >|파일을 덮어 쓰고 파일을 복제 할 수 있습니다.
bsd

30

>A는 리디렉션 연산자 . >일반 파일로 리디렉션 하는 데 사용 하면 클로버 가 설정되어 있지 않으면 이미 존재하는 내용을 덮어 씁니다 . >>파일 끝에 추가됩니다.


그리고 noclobber설정되어 있으면 덮어 쓰지 않습니다 (bash).
Hauke ​​Laging

설명에 감사드립니다.
Josh Jolly

5
@HaukeLaging noclobber은 단순히 bashism 이 아닙니다. POSIX
kojiro

6

다른 사람들이 대답했듯이 >명령이 아니라 리디렉션 연산자입니다. 그러나 '리디렉션 연산자'라는 용어는 구체적으로를 나타내지 않고 >여러 가지 가능한 다른 리디렉션 연산자를 나타냅니다. dash매뉴얼 페이지 목록은 리디렉션 연산자로 다음과 같은 :

 < > >| << >> <& >& <<- <>

각 개인 이름이 유효한지 잘 모르겠습니다. 어쩌면 오래된 셸 매뉴얼을 살펴보면 흥미로운 것을 발견 할 수 있습니다. 이 소스 는 정확하거나 부정확하며 분명히 그중 일부를 명명했습니다.

>  - 'output redirection operator'
<  - 'input redirection operator'
>> - 'output append operator'

또한 :

2> - 'standard error redirection operator'

그러나 이것은 2기술적으로 연산자의 일부가 아니라 인수이기 때문에 이것이 실제로 올바른 것으로 생각하지 않습니다 .

빠른 참조 (위의 내용 중 하나라도 인식하지 못하는 경우) :

>   - redirect output stream to a file, eg >somefile (for stdout) or 2>somefile
>|  - as above but overwrite the file even if the noclobber shell option is set
>>  - append output stream to file
<   - redirect input stream from file, n defaults to 0 for stdin
<>  - open file for reading and writing on stdin
>&  - redirect output stream to another stream (eg >&1) or close with - (eg 2>&-)
<<  - here document - see http://en.wikipedia.org/wiki/Here_document
<<- - here document with leading tabs removed.

bash당신도 있습니다 :

<<< - here string, a one line here file. Eg <<<"foo bar"

아주 좋은 빠른 참조 목록이지만 <<-선행 탭 공백을 제거 하지 않습니까?
iconoclast

@iconoclast, 아뇨, 확실히 탭입니다.
Graeme

0

> 출력을 파일 (또는 장치)로 리디렉션하여 이미 존재하는 모든 것을 덮어 씁니다.

>> 출력을 파일 또는 장치로 리디렉션하여 이미 존재하는 모든 것을 추가합니다.

< 파일 (또는 장치)에서 프로그램 또는 장치로 데이터를 지시합니다.

<< 여기 문서



1
@ Graeme 내 답변을 편집했습니다. 도움을 주셔서 감사합니다
les
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.