파일 이름에 대문자를 사용하지 않는 것이 모범 사례로 간주됩니까?

파일 이름에 대문자를 사용하지 않는 것이 모범 사례로 간주됩니까?

사람들은 Unix 파일 이름에 공백을 사용하면 안 된다고 말합니다. 파일 이름에 대문자(예: File_Name.txt및 ) 를 사용하지 않는 이유가 있나요 ? file_name.txt아니면 이건 단지 개인 취향의 문제일까요?

답변1

사람들은 유닉스 파일 이름에 공백이 있어서는 안 된다고 말합니다.

사람들은 많은 말을 했습니다. 일부 도구에는 버그가 있을 수 있지만 Space는 대규모 소비자 전용 OS 회사에 의해 확산되는 바이러스이고 현재 이를 피할 수 있는 방법이 없기 때문에 현시점에서는 그런 도구가 거의 없기를 바랍니다.

공백은 명령줄 등에서 파일 이름을 지정하는 것을 어색하게 만듭니다. 그게 다야. *nix 시스템에서 명시적으로 금지된 유일한 문자는 NUL(걱정하지 마세요. 키보드나 다른 사람의 키보드에 없으므로)과 입니다 /. 이는 경로 구분 기호이기 때문입니다. 1 그 외에는 다 괜찮습니다. 단일 경로 요소(파일 이름)는 255개로 제한됩니다.바이트(확장 문자 세트를 사용하는 경우 복잡해질 수 있음) 전체 경로는 4KiB입니다.

아니면 단지 개인 취향의 문제일까요?

나는 그렇다고 말할 것입니다. 대부분의 DE는 디렉토리에 대문자로 된 디렉토리를 생성하는 것 같으므로 $HOME( Downloads, Desktop, Documents- D매우 인기 있음) 이는 놀라운 일이 아닙니다. .Xclients및 와 같이 대문자가 포함된 매우 일반적이고 전통적인 파일도 있습니다 .Xauthority.

처음에 대문자를 사용하는 것의 한 가지 가치는 사전식으로 나열될 때 내용 앞에 소문자로 표시된다는 것입니다. 적어도 많은 도구의 경우 이는 로케일 설정의 영향을 받습니다.

나는 CamelCase(일명 CamelCase)의 팬이며 -- /home/goldilocks/blueSuedeShoes그 안에 무엇이 들어 있는지 신경 쓰지 마세요. 와 같은 파일 이름과 함께 사용합니다. 물론 개인 취향에 따른 문제이지만 아직까지 크게 슬프지는 않았습니다.

Java 클래스 파일은 Java 클래스 이름과 마찬가지로 특성상 대문자를 포함하는 경향이 있습니다. 물론, NetworkManager우리 중 일부가 원하더라도 잊지 말자 .


1. POSIX에서 권장하는 구분 기호가 하나 더 있습니다."휴대용 파일 이름 문자 집합"저것아니요공백을 포함하지만 대문자도 포함됩니다! POSIX"슬래시 문자 및 널 바이트"에 대한 보다 일반적인 제한 사항도 지정됩니다.같은 문서의 다른 위치. 이는 반영되거나 반영됩니다.오랜 전통의 관행.

답변2

파일 이름을 대문자로 사용하지 않는 이유 중 하나는 Unix의 정렬 순서가 대소문자를 구분하므로 대문자로 시작하는 파일이 순서 없이 표시되기 때문입니다. 그렇기 때문에 Makefile일반적으로 대문자로 이름이 지정됩니다. M아래로 스크롤하거나 여물통을 건너뛸 필요 없이 먼저 보고 싶은 파일 중 하나입니다 a-l.

즉, 파일 이름을 사용하면 상황이 더 나빠질 수 있습니다.

  • 공백을 사용하면 잘못 작성된 일부 프로그램과 파일 이름을 올바르게 인용하지 못하는 스크립트가 손상될 수 있습니다.
  • a로 시작하는 파일 이름은 -많은 프로그램에서 파일 이름이 아닌 명령줄 옵션으로 처리하므로 문제가 발생할 수 있습니다(예: rm -r이름이 지정된 파일은 삭제되지 않음 -r).
  • a로 시작하는 파일 이름은 .많은 유틸리티 및 쉘 글로빙에서 숨겨집니다(예: rm *유사한 파일은 삭제되지 않습니다 .config).
  • 특수 문자(예: |<>*?인쇄할 수 없는 문자) 를 사용하는 newline것은 기술적으로 가능하지만 유사한 공백 문자가 있는 스크립트/프로그램이 중단될 수 있습니다. 차이점은 공백 문자가 자주 사용되므로 프로그래머는 공백 문자에 대해 프로그램을 테스트하는 경향이 있는 반면, 덜 인기 있는 문자는 종종 테스트되지 않는다는 것입니다.

답변3

Windows 환경과 상호 작용하는 경우 Windows는 모든 것을 소문자로 사용하므로 대문자 사용을 피해야 합니다. 이는 일반적으로 반대의 문제입니다. 링크는 Windows에서는 Page_2.html작동 page_2.html하지만 Unix에서는 실패합니다.

답변4

대문자를 피하는 한 가지 이유는 bash탭 완성이 대소문자를 구분하기 때문입니다(적어도 기본적으로).아직bash기본 구성을 접할 때마다 저를 넘어지게 합니다. 물론, 널리 사용되는 다른 쉘도 있지만 이는 많은 운영 체제의 기본 로그인 쉘과 결합되어 bash대소문자 구분 완성이 일반적으로 기본값임을 의미합니다. 파일 이름을 모두 소문자로 사용하면 작업이 단순화됩니다.

관련 정보