내가 읽는 동안 file(1)
맨 페이지 (강조 광산)에서 이것을 발견했습니다.
/ etc / magic에 로컬 정의를 추가 할 때이 키워드를 유지하십시오. 사용자는 디렉토리에서 읽을 수있는 모든 파일에 “텍스트”라는 단어가 인쇄되어 있다는 사실을 알고 있습니다. 버클리처럼하지 말고“쉘 명령 텍스트”를“쉘 스크립트”로 변경하십시오.
이 문장 뒤에 숨겨진 이야기는 무엇입니까? 나는 추측 Berkeley
을 의미 BSD (Berkeley software distribution)
하지만 구글은 이에 대한 충분한 정보를 제공하지 않았다.
http://man7.org/linux/man-pages/man1/file.1.html에 연결file(1)
이 문장 27 년전 추가되었음을 보여 주위 뒷조사 링크
Don't do as one computer vendor did \- change ``shell commands text''
to ``shell script''.
나중에 현재 문장 링크로 변경
Don't do as Berkeley did \- change ``shell commands text''
답변
사람들은 file
파일에서 실행할 스크립트 (및 C 프로그램)를 작성 하여 $(file foobar)
또는로 출력을 캡처하고 popen()
문자열 일치 확인을 수행하여 file
“text”라는 단어 의 출력이 포함되어 있는지 (또는 끝났 는지) 확인했습니다 . 그런 다음 Berkeley Software Distribution (버클리 캘리포니아 대학)의 개발자가 설명한대로 모든 스크립트와 프로그램이
쉘 스크립트 파일을 텍스트 파일로 인식 하지 못하게 합니다.
답변
분명히 이것은 4.2와 4.3BSD 사이에서 발생했습니다 -http: //minnie.tuhs.org/cgi-bin/utree.pl?file=4.2BSD/usr/src/usr.bin/file.c 와 http : //를 비교 하십시오 . minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD/usr/src/usr.bin/file.c