GNU 도구가 일치하지 않는 ` 및 '를 사용하여 오류를 인용하는 이유는 무엇입니까?

GNU 도구가 일치하지 않는 ` 및 '를 사용하여 오류를 인용하는 이유는 무엇입니까?

GNU 도구는 종종 일치하지 않는 따옴표로 묶인 행의 일부(예: 파일 이름, 구문 오류, 유효하지 않은 날짜 등)와 함께 오류 및 경고 메시지를 출력합니다: ` 및 '

예: GNU coreutils에서자주하는 질문:

$ date -d "2006-04-02 02:30:00"
date: invalid date `2006-04-02 02:30:00'

그리고

rm: cannot remove `backup.tar': Value too large for defined data

그들은 왜 이런 일을 하는가? 그것에 어떤 이점이 있습니까? 그 뒤에 숨겨진 역사는 무엇입니까?

답변1

이전 X 글꼴에서는 `..'이 ‛..'처럼 대칭으로 보였습니다.

또한 `..'가 주어지면 라텍스는 '..'와 같은 올바른 왼쪽 및 오른쪽 작은따옴표를 생성합니다.

그래서 `..'는 해킹이었으며 2012년에는 coreutils변경됨'..'를 인용하는 것처럼 껍질을 벗기다

그러나 이제는 완전한 쉘 구문이 아니었고 내장된 "\r" 문자 등이 있는 경우 손상된 출력을 생성했습니다. 또한 일관되지 않게 어떤 경우에는 인용 부호가 사용되지 않았고 때로는 유니코드 '..' 인용이 사용되었습니다(로케일에 대해 정의된 인용 부호를 사용하고 이러한 제어 문자를 이스케이프 처리하는 데 사용됨).

아주 최근(2015)반점 세트모든 파일 이름 출력을 쉘 호환 형식으로 인용하여 보다 일관성을 유지하기 위해 coreutils에 도입되었습니다. 이는 제어 문자도 적절하게 이스케이프 처리하고 다른 명령에 더 쉽게 복사하고 붙여넣을 수 있도록 합니다. 진단의 다른 항목에서는 위에서 언급한 대로 "전체 유니코드" 인용을 사용합니다.

관련 정보