어제 본인은 이 SO 의견을 쉘에서 (적어도 있다고한다 bash
) >&-
"와 같은 결과가 있습니다" >/dev/null
.
이 의견은 실제로 ABS 안내서 를 정보의 출처로 언급합니다 . 그러나 그 소스는 >&-
구문이 "파일 디스크립터를 닫는다" 고 말합니다 .
파일 디스크립터를 닫고 널 디바이스로 경로 재지 정하는 두 가지 조치가 완전히 동등한 지 여부는 확실하지 않습니다. 그래서 내 질문은 : 그들이 있습니까?
표면적으로 설명자를 닫는 것은 문을 닫는 것과 같지만 널 장치로 리디렉션하면 림보의 문이 열립니다! 닫힌 문을 보면 아무것도 버리려고하지 않지만 열린 문을 보면 내가 할 수 있다고 가정하기 때문에 두 사람은 나에게 똑같이 보이지 않습니다.
즉, 실제로 파일의 모든 바이트를 처리하고 잊어 버릴 수 있는 >/dev/null
수단이 있는지 항상 궁금 했습니다. 다른 한편으로, 쉘이 닫힌 파일 디스크립터를 만나면 단순히 아무것도 쓰지 않을 것이라고 생각하는 경향이 있지만 확실하지는 않지만 모든 바이트를 읽을 지 여부 는 여전히 의문 입니다.cat mybigfile >/dev/null
/dev/null
cat
이 코멘트는 말했다 >&-
과 >/dev/null
" 해야 동일"하지만 나에게 이렇게 울려 퍼지는 대답하지 않습니다. 표준 또는 소스 코어와 관련하여 더 권위있는 답변을 원합니다.