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


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.