우리 회사는 "ApplicationName"과 같이 대소문자가 혼합된 브랜드 이름으로 애플리케이션을 배포합니다.
응용 프로그램의 설치 프로그램은 이 기준에 따라 모든 경로와 파일 이름을 생성합니다. 예를 들어 홈디렉토리는 /opt/ApplicationName
, init 파일이 호출되므로 ApplicationName
실행을 시켜야 하는 service ApplicationName status
등의 작업을 합니다.
나에게 이것은 모든 합리적인 규칙을 깨뜨립니다. 파일과 디렉터리는 모두 소문자여야 한다고 생각합니다(파일과 디렉터리가 모두 호출되는 MySQL과 같은 다른 응용 프로그램에서는 mysql
심지어 Apache 및 Tomcat과 같은 응용 프로그램에서도 이 절차는 이전 선례를 취소합니다). .
만약 내가 이것을 버그 보고서로 제출한다면, 나는 단지 "나는 이것이 틀렸다고 생각합니다"보다 더 강력한 주장을 제시하고 싶습니다. 그렇다면 POSIX 표준과 같은 시스템 문서에서는 소문자여야 한다고 규정합니까?
답변1
아니요, 패키지 설치 디렉터리에 소문자 이름이 지정되어 있지 않습니다.
실제로 역사적으로 설치된 소프트웨어 패키지는 Sun Microsystems 또는 Oracle /opt
과 같이 패키지를 제공한 회사의 전체 대문자 주식 기호로 시작되었습니다 .SUNW
ORCL
따라서 Sun의 QFS 파일 시스템과 같은 소프트웨어 패키지는 /opt/SUNWqfs
.
답변2
POSIX 표준에는 지침을 제공하는 섹션이 있습니다.적격 유틸리티(예: "로컬 시스템용으로 특별히 작성된 것이나 더 큰 응용 프로그램의 구성 요소로")
- 유틸리티 이름은 2~9자(포함)여야 합니다.
- 유틸리티 이름에는 소문자(소문자 분류)와 이식 가능한 문자 집합의 숫자만 포함되어야 합니다.
[인용하다:12.2 유틸리티 구문 가이드]
"포함해야 한다"라는 단어의 사용이 실제로 "포함해야 한다"를 의미하는지 여부는 나에게 명확하지 않습니다.오직(아래 댓글들 사이에서는 "만 포함해야 한다"는 뜻으로 공감됩니다.)
POSIX 호환 유틸리티라고 주장하지 않는 Unix 시스템의 응용 프로그램은 원하는 이름을 사용할 수 있습니다. 그 경우하다POSIX 규격을 준수한다고 주장하는 유틸리티이는 POSIX 쉘 유틸리티의 일부입니다., 섹션 12.2의 지침 다음에 나오는 텍스트는 "해야 한다"의 의미가 "해야 한다"로 변경되었음을 나타냅니다.
내가 아는 한, 디렉터리 이름에 대한 유사한 지침은 없습니다. macOS(예:인증된 UNIX 03 제품예를 들어 Intel 기반 Mac 컴퓨터에서 실행하는 경우)는 /Users
사용자 홈 디렉터리의 접두사로 사용되며 기타 대소문자가 혼합된 디렉터리 이름도 많이 사용됩니다.
답변3
POSIX 가이드에서 말하는 것 외에도 이것이 사용자 전통에 더 큰 비중을 둘 수 있다고 생각합니다. "ApplicationName"과 같은 케이스 이름은 위키의 폭발적인 증가로 인기를 얻었고, 이로 인해 나 같은 일부 사람들은 하이픈이나 공백 대신 대문자를 사용하는 데 익숙해졌습니다. 그러나 이것은 Linux 및 유사한 운영 체제가 대중화되고 몇 년이 지난 후였으며 Unix는 오랜 전통을 가지고 있습니다.
이 전통은 단순하여 Kusalananda가 지적한 규칙을 따를 뿐만 아니라 4~6개의 문자 단어(예: /usr
"사용자", /srv
"서비스" 또는 /mnt
"설치")만 축약하고 분명히 더 긴 의미를 갖습니다( /sbin
" Superuser Binary". 이 전통에서는 대문자로 인해 실수로 Shift 키를 누르고 Caps Lock 키를 눌렀을 수도 있습니다. 이는 매우 나쁜 일입니다.
Unix에서는 오랫동안 대소문자를 구분하는 긴 파일 이름을 작성할 수 있었던 반면, MS-DOS/Windows에서는 대소문자를 구분하지 않는 짧은 파일 이름(8자 + 확장자 3개)으로 제한되어 있기 때문에 이것은 놀라운 일입니다. Windows 95가 이 제한(프로그램 파일, 내 문서 등)을 넘어섰을 때 단순성은 빠르게 사라졌습니다.
그러나 오늘날에는 NetworkManager
데몬과 같은 몇 가지 예외가 있으며 앞으로 더 많은 WikiWord를 볼 수 있습니다. 하지만 우리는 여전히 마우스를 싫어하고 터미널에 긴 이름을 쓰다가 TabTab자동 완성으로 끝나게 됩니다. 아니면 이름을 바꾸면 vim
어떤 이점이 있다고 생각하는 사람이 있나요 VisualImproved
?