Unix는 독립적으로 리디렉션될 수 있는 표준 출력과 표준 오류를 제공합니다.
$ ls /not-exist
ls: cannot access '/not-exist': No such file or directory
$ ls /not-exist > redirect.out
ls: cannot access '/not-exist': No such file or directory
$ ls /not-exist 2> redirect.err
$
나는 웹에서 이러한 분리를 구현한 흥미로운 이유에 대한 이야기를 들었습니다. 여기에는 초기 Unix에서 사용된 컴퓨터 조판(그리고 내 생각에 Unix 파이프)이 포함됩니다. 지금은 찾을 수 없습니다.
스토리를 여기에 연결하여 관련 태그와 연결하고 더 쉽게 찾을 수 있도록 하시겠습니까?
답변1
Steve C. Johnson은 2013년에 사진 식자에 대해 불평하는 사용자로서 이에 대해 썼습니다. 짜잔! — 문제는 이틀 후에 해결되었습니다. 그러나 더글러스 맥길로이(Douglas McIlroy)는 25년 전에 약간 다른 이야기를 했습니다.
McIlroy 버전에서 표준 오류는 Unix 명령 파이프라인을 도입한 Ken Thompson의 유명한 밤샘 작업의 자연스러운 파생물입니다. 파이프 이전의 유닉스 세계에서는 표준 출력이 리디렉션되는 파일로 오류가 전송된다는 사실이 "문제"였습니다. 그러나 파이프가 도입되면서 "의심하지 않는 프로세스로 출력이 전송될 때 이러한 동작은 용납할 수 없게 됩니다." McIlroy는 Dennis Ritchie가 6판 이후 "곧" 문제를 수정하는 표준 오류 메커니즘을 도입했다고 회상했습니다.
게다가 McIlroy는 정원용 호스 비유가 발명되기 5년 전인 지금까지 적어도 2년 동안 여러 제안을 포함하여 꽤 오랫동안 Unix에서 파이프에 대한 아이디어를 연구해 왔습니다. 파이프로 연결된 스트림과 구별되는 별도의 스트림이라는 개념이 단 며칠 만에 마술처럼 처음부터 나타나는 것은 아닙니다.
추가 읽기
- 스티브 존슨(2013-12-11). 그래픽 시스템 C/A/T 이미지세터. TUHS 메일링 리스트. 유닉스 유산 협회.
- 더글라스 맥길로이, M.(1987).UNIX 연구를 위한 독서 자료: 프로그래머 매뉴얼(1971-1986)에서 주석이 달린 발췌문. AT&T Bell Labs 컴퓨팅 과학 기술 보고서 #139. 피. 9.(파일)
- ""내가 할 거야" 그리고 그는 그렇게 했습니다".유닉스 운영체제의 탄생.