터미널 명령에서`>>`는 무엇을 의미합니까?

Jun 28 2018

방금 아래에 주어진 명령을 보았습니다.

$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile

내가 짐작할 수있는 것은 아마도 .bash_profile의 변경 사항을 커밋하는 데 사용되지만 정확히 무엇에 사용됩니까?

답변

31 kai-dj Jun 28 2018 at 12:06

프로그램의 stdout을 이전에 리디렉션하고 >>이후에 지정된 파일에 추가합니다.

48 slhck Jun 28 2018 at 14:13

짧은 대답 — 무엇을 >>합니까?

를 사용하면 >>명령 출력을 파일에 추가합니다.

예제 명령은 기본적으로 여러 부분으로 구성됩니다.

명령 >> 파일 이름

따라서의 출력은에 command추가됩니다 filename.


특정 경우에는 어떻게됩니까 echo?

특정 경우에 echo "…"명령은 입력 인수를 "표준 출력 설명자"라고하는 "stdout"에 출력합니다. 입력 인수 echo다음에는 줄 바꿈 ( \n)이옵니다. 따라서 줄 바꿈이 생깁니다.

여기서 "표준 출력 설명자"는 명령을 실행할 때 쉘에 표시되는 출력 스트림에 불과합니다. (즉, 입력 echo foo하고 Enter 키 foo\n를 누르면 echo명령 의 실제 출력이 셸에 표시되고 foo그 뒤에 줄 바꿈 이 표시됩니다 .)

기본적으로 명령 줄에 쓰는 모든 것은 stdout을 사용합니다. 또한 일반적으로 오류 메시지에 사용되는 "stderr"라는 또 다른 설명자가 있습니다. 또한 stdout처럼 인쇄되므로 때때로 산재 할 수 있습니다. 그리고 입력에 사용되는 stdin 설명자가 있습니다. 자세한 내용은 이 기사 를 참조하십시오.

셸에서 출력을 어떻게 리디렉션합니까?

항상 stdout을 파일 설명 자로 리디렉션 할 수 있으며 다음 연산자 중 하나를 사용하여 수행 할 수 있습니다.

  • >파일 설명 자로 리디렉션합니다. 파일이 존재하지 않는 경우 파일을 생성하거나 이미 존재하는 경우 쓰기 전에 파일을 자릅니다. 따라서 파일을 stdout으로 덮어 씁니다.

  • >>파일 설명자에 추가합니다. 파일이없는 경우 생성합니다.

2>또는 2>>유사한 방식으로 stderr을 리디렉션 할 수도 있습니다 . 또는 stderr과 stdout을 하나의 파일로 결합 할 수 있습니다 2>&1. 리디렉션 및 몇 가지 더 많은 예제에 대한 자세한 내용은 이 작은 자습서를 읽을 수 있습니다 .

특정 쉘 코드가 의미하는 바를 어떻게 알 수 있습니까?

일반적으로 특정 셸 명령에 대한 시각적 지침과 정보를 제공하는 explainshell.com 을 사용해 볼 수 있습니다 .

7 MarkBoyce Jun 29 2018 at 09:58

예를보고 싶어하는 TLDR 사람들을 위해;

>> 앞의 명령의 표준 출력 (오류 아님)은 이름을 딴 파일의 끝에 추가됩니다.

따라서 "flintstones.txt"파일에 다음이 포함됩니다.

Fred
Barney

echo Dino >> flintstones.txt 파일 끝에 'Dino'가 추가됩니다.

Fred
Barney
Dino