현재 YYMMDD-NAME+PAGE
대부분의 파일 이름을 사용하고 있습니다. NAME
공백을 밑줄로 변환했습니다.
YYYY-MM-DD
날짜 형식 을 사용하고 싶지만 이름과 구분하는 방법을 잘 모르겠습니다. -
이름이 숫자로 시작하면 A 가 이상하게 보입니다. 를 사용 _
하면 공백을 나타내는 밑줄과 충돌합니다.
여기에서 작동하는 파일 이름에서 합리적으로 안전한 문자는 무엇입니까? Linux를 사용하고 있지만 다른 사람 (Windows 7, Mac OS X)과 파일을 공유 할 수 있습니다.
답변
요약:
- Windows : ASCII 제어 문자 및
\/:*?"<>|
- Linux, OS-X : null 또는
/
모든 플랫폼에서 ASCII 제어 문자와 같은 인쇄 할 수없는 문자를 사용하지 않는 것이 가장 좋습니다.
윈도우
Windows에서 Windows 탐색기는 제어 문자를 허용하지 않거나 \/:*?"<>|
공백을 사용할 수 있습니다. 공백을 사용하면 명령 줄에서 사용할 때 파일 이름을 인용 해야하는 경우가 있습니다 (그러나 GUI 응용 프로그램은 내가 아는 한 영향을받지 않습니다). NTFS와 같은 Windows 파일 시스템은 파일 이름으로 인코딩을 저장하지만 UTF-16이 표준입니다.
Windows의 일부 부분은 대소 문자를 구분하고 다른 부분은 대소 문자를 구분하지 않습니다. Windows NTFS 파일 시스템에서 “Ab”및 “ab”와 같은 고유 한 파일 이름을 쉽게 만들 수 있습니다. 이러한 이름은 별개의 개별 컨텐츠를 포함하는 별도의 파일을 나타냅니다. 그러나 Windows 명령 프롬프트는을 사용하여 두 파일을 모두 행복하게 나열하지만, 같은 명령을 사용하여 두 파일 dir
중 하나에 쉽게 액세스하거나 조작 할 수는 없습니다 type
. 아래를 참조하십시오.
리눅스, OS-X
Linux 및 OS-X /
에서는 인쇄 가능한 ASCII 세트 만 금지됩니다. 일부 문자 (와 같은 셸 메타 문자 *?!
)는 명령 행에서 문제를 일으키며 파일 이름을 적절히 인용하거나 이스케이프해야합니다.
ext2, ext3과 같은 Linux 파일 시스템은 문자 집합에 구애받지 않습니다 (문자열을 바이트 스트림으로 처리한다고 생각합니다-null 만 /
허용되며 금지됩니다). 즉, 파일 이름을 UTF-8 인코딩으로 저장할 수 있습니다. 표시 또는 처리를 위해 파일 이름을 올바르게 변환하는 데 사용할 인코딩을 아는 것은 셸 또는 다른 응용 프로그램에 달려 있다고 생각합니다.
결론
그래서 당신은 아마 안전한 것을 사용할 수 있습니다 ✣
(입력하기가 어렵지 않은 경우)
Windows의 대소 문자 구분
C> dir /B
Ab
aB
аB
C> type Ab
b
b
C> type aB
b
b
C> type аB
unicode homograph
두 번째 파일의 내용을 입력 할 수 없으며 Windows type
명령은 Ab의 내용을 대신 반환합니다. 세 번째 파일은 Linux의 aB 와도 다릅니다.
(Windows 10 NTFS).
답변
RedGrittyBrick의 답변은 기술적으로 정확하지만 안전성은 유일한 문제가 아니라 사용성도 중요합니다. 더 좋은 질문은 “파일 이름에 어떤 문자를 사용하는 것이 좋을까”입니다.
몇 가지 잠재적 지침 :
- [0-9a-zA-Z_] -영숫자와 밑줄은 항상 사용하기에 좋습니다.
\/:*?"<>|
그리고 널 바이트는 적어도 하나의 시스템에 문제가있다,해야하고 항상 피할 수.- 공백 은 많은 시스템에서 인수 구분 기호로 사용되므로 가능하면 공백이있는 파일 이름은 사용하지 않아야합니다. 다른 공백 (예 : 탭)은 훨씬 더 그렇습니다.
- 세미콜론 (;) 은 많은 시스템에서 명령을 분리하는 데 사용됩니다.
세미콜론과 쉼표 (,) 는 Windows 명령 행 에서 (일부 버전?) 명령 행 인수를 구분하는 데 사용됩니다 . []()^ #%&!@:+={}'~
그리고 [`] 모두 많은 껍질에서 특별한 의미를 지니고 있으며 해결하기가 성가 시므로 피해야합니다. 또한 URL에서 끔찍한 경향이 있습니다.- 피해야 할 주요 인물 :
- 많은 명령 행 프로그램은 하이픈 [-] 을 사용하여 특수 인수를 나타냅니다.
- * nix 기반 시스템 은 숨김 파일 및 디렉토리의 주요 문자로 전체 정지 [.] 를 사용합니다.
- ASCII 세트에 없는 것은 오래된 시스템 또는 더 많은 기본 시스템 (예 : 일부 내장 시스템)에서 문제를 일으킬 수 있으므로주의해서 사용해야합니다.
기본적으로 당신을 떠난다 :
[0-9a-zA-Z -._]
것을 항상 사용하는 성가신 안전하지 (한 당신이 파일 이름을 시작으로 알파 숫자) :
답변
당신은 할 수 있습니다 :
- 현재 밑줄을
#
(공간에 대한 판독기 기호)로 바꿉니다. - 파일 이름에서 ‘섹션’날짜까지 밑줄 (또는 두 번째 하이픈-입력하기 쉬움)
Alt-1. 초기 대문자는 공백을 대체 할 수 있습니다. YYMMDD-HHMM-FileName.ext
또는YYMMDD-HHMM_FileName.ext
Jan-Sep (& 1st-9th ea mo)에 대해 패딩 된 0으로 자동 정렬하는 명확한 표시를위한 최소 문자.