여기에서 대부분의 답변 [ 1 ] [ 2 ] [ 3 ] 은 다음과 같이 단일 꺾쇠 괄호를 사용하여 / dev / null로 리디렉션합니다.
command > /dev/null
그러나 / dev / null에 추가해도 작동합니다.
command >> /dev/null
여분의 캐릭터를 제외하고 이것을하지 않는 이유가 있습니까? / dev / null의 기본 구현에 이러한 "가급적"입니까?
편집 : 개방 (2) 맨 페이지는 말한다 lseek의가 추가 모드에서 파일에 대한 각 쓰기 전에 호출됩니다
O_APPEND
파일이 추가 모드로 열립니다. 각 write (2) 전에 파일 오프셋은 lseek (2)와 같이 파일 끝에 위치합니다. 파일 오프셋 및 쓰기 작업의 수정은 단일 원자 단계로 수행됩니다.
사용하면 약간의 성능 저하가 있다고 생각 >>
합니다. 그러나 반면에 / dev / null을 자르면 해당 문서에 따라 정의되지 않은 작업처럼 보입니다.
O_TRUNC
파일이 이미 존재하고 일반 파일이고 액세스 모드에서 쓰기를 허용하는 경우 (예 : O_RDWR 또는 O_WRONLY) 길이 0으로 잘립니다. 파일이 FIFO 또는 터미널 장치 파일 인 경우 O_TRUNC 플래그는 무시됩니다. 그렇지 않으면 O_TRUNC의 효과가 지정되지 않습니다.
POSIX 사양에 따르면 >
기존 파일을 잘라야 하지만 O_TRUNC는 장치 파일에 대해 구현 정의되어 있으며 / dev / null이 잘린 것에 응답하는 방법에 대한 단어는 없습니다 .
따라서 / dev / null을 실제로 지정하지 않으면 잘립니다. 그리고 lseek 호출은 쓰기 성능에 영향을 미칩니 까?