">"와 ">>"의 차이점은 무엇입니까?


12

차이점은 무엇이며 ls >그리고 ls >>? 내 GCSE 컴퓨팅을 위해 이것을 이해해야하지만 차이점이 무엇인지 모릅니다.


1
아래의 멋진 답변 외에도 stackoverflow.com/a/984761/1841533의 두 번째 (가장 많이 찬성 한) 답변을 참조하십시오 : >>를 사용하여 파일에 쓰기 (예 : 로그)도 좋은 부작용이 있습니다. 프로세스가 파일에 쓰는 동안 파일이 잘 리면 saif 파일의 시작 부분에 "Nul"문자가 나타나지 않습니다! (예 : 로그 파일 회전 중) "foo> file"은 검색하지 않기 때문에 크기 변화를 인식하지 못하고 여전히 시작보다 더 먼 곳을 가리 킵니다. OS가 Nul로 채 웁니다. foo >> file은 새로운 위치 (처음)를 찾고 가리 킵니다.
Olivier Dulac

이것은 교육적인 질문이므로 관련 문서를 사용하여 작업하는 방법을 배우는 것이 좋습니다. Bash Reference Manual, "Redirections"섹션 (을 통해 액세스 가능 man bash).
David Foerster

답변:


28

>& >>리디렉션 연산자입니다. 이 경우 ls다른 곳 에서 무언가의 출력을 전송합니다 . 이 출력이 파일로 이동하면 파일 >이 잘립니다 (예 : 이전 내용을 삭제함 >>). 파일 끝에 새 데이터를 추가하여 이전 내용을 유지합니다. 이것은 모든 입력에서 작동하므로 예를 들어 echo&를 cat이런 식으로 사용할 수도 있습니다.

|데이터를 다른 응용 프로그램으로 전달 하는 연산자도 관심이 있으므로 ls | cat -n줄 번호 매기기 목록을 제공합니다!

파이프는 관련 용어입니다.


2
자르거나 덮어 쓰시겠습니까?
DK Bose

2
에서 @DKBose strace의 출력 bash -c 'echo a > blah': open("blah, O_WRONLY|O_CREAT|O_TRUNC, 0666)잘라 내기 올바른 용어는 것 때문에.
muru

"파이프"와 "출력 리디렉션"도 있습니다. 잘 했어.
0xSheepdog

내가 의미하는 것을 발견했습니다 :이 멋진 답변 외에도 stackoverflow.com/a/984761/1841533 의 두 번째 (및 가장 많이 찬성 한) 답변을 참조하십시오 : >>파일에 쓰는 데 사용 (예 : 로그)도 좋은면이 있습니다. 프로세스가 파일에 쓰는 동안 파일이 잘 리면 saif 파일의 시작 부분에 "Nul"문자가 나타나지 않는 효과 ! (예 : 로그 파일 회전 중) "foo> file"은 검색하지 않기 때문에 크기 변화를 인식하지 못하고 여전히 시작보다 더 먼 곳을 가리 킵니다. OS가 Nul로 채 웁니다. foo >>file따라서 새로운 위치 (처음)를 찾고 가리 킵니다.
Olivier Dulac

5

기호 >와는 >>출력을 파일로 리디렉션하는 데 사용됩니다.

파일이 존재하지 않으면 둘 다 파일을 작성합니다. 파일이 이미 존재 >하면 파일에 >>데이터를 추가 할 파일을 덮어 씁니다 .

그래서 ls > myfile라는 이름의 문서를 생성합니다 myfile존재하지 않는 경우입니다. myfile이 이미 있고 일부 데이터가 포함 된 경우 전달한 새 데이터로 덮어 씁니다.

ls >> myfile존재하지 않는 경우 파일을 작성하고 데이터를 쓰는 반면에 . 파일에 일부 데이터가 있으면 새 데이터가 끝에 추가됩니다.


0

단일>을 사용하는 경우 파일이 이미 존재하는 경우 파일을 덮어 씁니다. 이것을 사용할 때 매우 조심하십시오.

두 개의 >>을 사용하면 파일이 이미 있으면 추가합니다 (즉, 파일 맨 아래에 쓰기 시작). 그렇지 않으면 새 파일이 없으면 새 파일을 만듭니다.


1
이미 답변을 반복하는 이유는 무엇입니까?
Requist
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.