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에 도입되었습니다. 이는 또한 제어 문자를 적절하게 이스케이프 처리하고 다른 명령에 더 쉽게 복사하고 붙여넣을 수 있게 해줍니다. 진단의 다른 항목은 위에서 설명한 대로 "전체 유니코드" 참조를 사용합니다.

관련 정보