>와 >>의 차이점은 무엇입니까(특히 cat 프로그램과 함께 사용할 경우)? [복사]

>와 >>의 차이점은 무엇입니까(특히 cat 프로그램과 함께 사용할 경우)? [복사]

이라는 파일이 있다고 가정해 보겠습니다 temp.txt. 이 cat프로그램을 사용하여 이 파일의 내용을 추가하고 싶습니다. 파일이 없으면 만들고 myfile.txt, 있으면 끝에 추가합니다.myfile.txt

나는 다음과 같은 가능성을 고려하고 있습니다.

cat temp.txt > myfile.txt

또는

cat temp.txt >> myfile.txt

두 명령 모두 내가 원하는 방식으로 작동하는 것 같습니다. 그래서 제 질문은 의 >차이점은 무엇입니까 >>? 시간 내 주셔서 감사합니다.

답변1

>파일에 쓰고 기존 콘텐츠를 덮어씁니다. >>파일에 추가합니다.

에서 man bash:

출력 리디렉션

출력 리디렉션을 사용하면 단어 확장으로 인해 이름이 생성된 파일이 파일 설명자 n에 쓰기 위해 열리거나, n이 지정되지 않은 경우 표준 출력(파일 설명자 1)에 쓰게 됩니다. 파일이 없으면 생성되고, 있으면 크기가 0으로 잘립니다.

리디렉션된 출력의 일반적인 형식은 다음과 같습니다.

[n]>word

리디렉션 연산자가 >이고 내장 명령 세트의 noclobber 옵션이 활성화된 경우 확장명이라는 단어로 명명된 파일이 존재하고 일반 파일이면 리디렉션이 실패합니다. 리디렉션 연산자가 >|이거나 리디렉션 연산자가 >이고 내장 명령 세트의 noclobber 옵션이 활성화되지 않은 경우 word라는 이름의 파일이 존재하더라도 리디렉션을 시도합니다.

리디렉션 출력 추가

이런 방식으로 출력을 리디렉션하면 단어 확장으로 인해 이름이 생성된 파일이 파일 설명자 n에 추가되거나 n이 지정되지 않은 경우 표준 출력(파일 설명자 1)에 추가하기 위해 열리게 됩니다. 파일이 존재하지 않으면 생성됩니다.

추가 출력의 일반적인 형식은 다음과 같습니다.

[n]>>word

답변2

예를 들어 >
. cat abc.txt > pqr.txt
의 내용은 pqr.txt다음으로 대체됩니다.abc.txt

예를 들어 >>
. cat abc.txt >> pqr.txt
내용은 마지막에 abc.txt첨부하겠습니다 .pqr.txt

관련 정보