파일 및 디렉터리 이름의 구분 기호로 두 개의 점(..) 또는 두 개의 대시(--) 사용

파일 및 디렉터리 이름의 구분 기호로 두 개의 점(..) 또는 두 개의 대시(--) 사용

구분 기호로 이중 점 또는 이중 빼기 기호를 사용하는 것이 좋은 생각입니까? 나는 실험 과학 데이터에 대한 좋은 명명 규칙을 찾으려고 노력하고 있습니다. 예를 들어:

2017-12-11T19-45..JDoe-042..UO2(NO3)2-EtOAc_dist..150.3K..1.234mM.dat
2017-12-11T19-45--JDoe-042--UO2(NO3)2-EtOAc_dist--150.3K--1.234mM.dat

내 이유:

  1. 플랫폼 간 호환성을 보장하기 위해 적합한 문자는 해당 문자 _ - .의 조합뿐입니다.
  2. 내 생각엔 그들 중 누구도 혼자 일하는 사람은 없어:
    • _공백을 남겨두십시오. 화학식은 대소문자를 구분하므로 camelCase를 사용할 수 없습니다.
    • -:내부 실험실 코드의 일부인 경우가 많으며 시간(수정된 ISO 8601 표기법) 및 비율에 대한 콜론 대신 사용되기도 합니다.
    • .소수점입니다.
  3. 이들의 조합 중 가장 인기 있는 것은,것 같다, 예 _-_. 그런데 이게 3글자인데, 이미 파일명이 꽤 길기 때문에(예제에서 볼 수 있듯이) 가능하다면 2글자로 붙이고 싶습니다.
  4. 시각적으로, 그리고 vs 와 vs __의 차이점을 빠르게 구별하기는 어렵습니다 . _---...
  5. 나는 쉼표(의견에서 올바르게 제안된 것처럼 고려해야 할 실행 가능한 문자임)를 포함하지 않았습니다. 왜냐하면 이미 주로 숫자 값에 대해 소수점을 유지하고 있는 ,단일 점과 혼동하기 쉬울 것이라고 생각하기 때문입니다. ..

SE 네트워크의 여러 게시물에 따르면, 예를 들어

--나는 둘 다 완벽하게 수용 가능 하다고 생각하며 ..최종 선택을 고려 중입니다 ... 그러나 특히 정규식이나 Python 스크립트가 이러한 파일과 폴더를 처리하는 방법에 대해서는 잘 모르겠습니다. 둘 중 하나에 대한 경험이 거의 없지만 배우고 있습니다.

특수 소프트웨어의 동작에 관계없이 이러한 구분 기호가 일반적으로 일반 파일 시스템 및 스크립팅 언어에 안전하다고 생각하십니까?

답변1

그 중 하나Unix/Linux에서 면밀히 조사되고 추측된 디자인 결정사용자에게 유리하게 작동하는 파일 시스템 기능입니다. 다음을 제외한 모든 문자가 파일/디렉토리 이름에 허용됩니다.영점 \0(ASCII 000) 및줄이다 /(후자는 파일용으로 예약되어 있습니다.).

POSIX와 호환되거나 잘 작성된 프로그램과 스크립트는 이러한 관대함을 처리하지만 불행히도 그렇지 않은 예가 셀 수 없이 많습니다. 그러나 점이나 대시가 아닌 매우 구체적인 문자 집합을 뱉어내는 경향이 있습니다. (공백과 개행 문자는 가장 골치 아픈 두 가지입니다.) 실제로 점과 대시는 상당히 광범위하게 사용됩니다. 일반적인 도구, 언어 및 정규 표현식이 이를 잘 처리합니다.

...그러나 한 가지 예외가 있습니다.(물론이죠?) 이렇게 하려는 의도는 전혀 보이지 않습니다. 하지만 주의해야 할 점은 이름 앞에 대시를 사용하지 마세요. 물론 이는 합법적이지만 이러한 이름을 잘못 처리하여 명령줄 옵션/플래그로 해석되는 프로그램이 너무 많습니다. 예를 들어, 한 스크립트가 다음과 같이 파일 이름을 다른 스크립트에 전달하면 다음 some-script --my-dash-first-file ...과 같은 내용이 표시됩니다 Unknown option '--my-dash-first-file'.

긴 이야기 짧게당신이 제안한 솔루션은 안전합니다만약에다음과 같은 이름은 사용하지 마세요.시작대시로.

추가 경고: 특히 파일의 기본 이름을 파일의 "확장자"(예: foo.txt)와 구분하기 위해 점 자체가 일반적이지만 점 쌍은 종종 단독으로 나타나며 특별한 의미를 갖습니다. 현재 상위 디렉터리 디렉터리( ..) 또는 /foo/bar/../bazpath()의 이전 디렉토리. 따라서 기술적인 문제는 발생하지 않지만 이름에 있는 이중 점은 약간 독특하여 일부 사용자가 주저하게 만들 수 있습니다.


관련 정보