OS X에서 파일 이름에 유효하지 않은 문자는 무엇입니까?


22

이 정보를 찾는 데 문제가 있으며 시행 착오가 없을 수도 있습니다. OS X Lion (10.7)에서 파일 이름에 유효하지 않은 문자는 무엇입니까?


1
단일 슬래시? 단일 백 슬래시? 단일 또는 이중 기간?

모든 슬래시 콤보와 싱글은 작동하는 것처럼 보이지만 이미 사용 중이므로 단일 및 이중 기간이 실패합니다. 그 이상이 있기를 바랍니다 .... :)
Rodney Foley

ASCII NUL을 사용할 수 없습니다. 잠시 생각하면 자신이 왜 그런지 알 수 있습니다.
Donal Fellows

@Donal ASCII NUL은 단순히 "입력"하거나 실수로 문제를 일으킬 수있는 것이 아닙니다.
Rodney Foley

1
상황을 알려주시겠습니까 로드니? 우리가 당신이하려는 일에 대해 조금 이해했다면 이것에 대답하는 데 많은 도움이 될 것입니다 ... AFAIK, 몇 가지 잠재적 인 문제가 있습니다 : 신에게 정직한 금지 된 문자, 터미널 쉘의 경로 및 Finder에 제대로 표시되지 않는 문자.
Shog9

답변:


7

HFS Plus 는 " NUL을 포함한 모든 문자, 유니 코드를 허용합니다 . OS API는 레거시 이유로 일부 문자를 제한 할 수 있습니다"


3
기술적으로 HFS + 파일 시스템은 모든 유니 코드 문자를 허용합니다 (내부 이름은 2 바이트 길이의 파스칼 문자열로 표시되기 때문에). 그러나 OS X에서 제공하는 API 중 AFAIK를 사용하면 슬래시 '/'또는 NUL이 '\0'있는 파일을 생성 / 열 수 없습니다 .
Adam Rosenfield

카본 또는 코코아와 같은 API? 터미널이 그러한 제한을 받고 있다고 가정하지만 시작과 같은 다른 프로그램에서 실행하는 스크립트는 어떻습니까?
tobylane

8

OS X에서 파일 이름에 유효하지 않은 문자는 무엇입니까?

위키 HFS + :

파일 이름의 유니 코드로 허용되는 문자 , NUL을 포함한 모든 문자. OS API는 레거시 이유로 일부 문자를 제한 할 수 있습니다


Finder는 현재 파일 이름에 콜론을 입력 할 수 없지만 백 슬래시를 입력 할 수는 있습니다. 그러나 Finder에서 슬래시로 표시된 문자는 쉘에서 콜론으로 표시되며 그 반대도 마찬가지입니다. Finder는 ASCII 제어 문자도 허용하지 않습니다.


Bash는 \000(NUL)을 제외한 모든 제어 문자를 허용하는 것처럼 보였습니다 . 다음에서 출력을 실행하여 테스트했습니다.

for i in {1..31} 127 0; do echo touch \\$(bc <<< "obase=8;$i"); done

2

편집

Wikipedia 에 따르면 유일하게 유효하지 않은 문자는 슬래시 /이지만 UNIX 레이어에 있습니다.


2
아마도 :Mac OS Classic에서는 금지되어 있지만 Mac OS X에서는 확실히 touch foo:bar작동 하지 않습니다 . 완벽하게 작동합니다.
Adam Rosenfield

1
답변이 업데이트되었습니다. downvote를 제거 할 수 있습니다.

5
@Adam : :"unix layer"에서는 유효하지만 /"Mac layer"(예 : Finder, 대부분의 파일 관련 대화 상자 등)에서는 번역되어 있습니다 . 콜론은 "HFS 경로에서 구분 기호로 사용됩니다. ”및 슬래시는“POSIX 경로”에서 구분 기호로 사용되므로 작업중인“레이어”에 따라 양방향 변환이 있습니다.
Chris Johnsen

2
따라서 슬래시 ( /) 나 콜론 ( :)이 안전하지 않습니까?
Nicolas Miari

2
@NicolasMiari 예. Finder.app에서는 콜론을 입력 할 수 없으며 콜론을 포함하는 파일 이름으로 제대로 작동하지 않습니다. UNIX 계층에서는 슬래시 (또는 콜론으로 변환)가 포함 된 파일을 사용할 수 없습니다. 그런 다음 Microsoft Word와 같은 다른 응용 프로그램이 있습니다. 예를 들어 TextEdit.app에서 파일 이름 foo/bar.docx(작동) 으로 문서를 저장하면 Microsoft Word에서 문서를 열 수 없습니다.
Konrad Rudolph
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.