파일 이름에 공백 문자를 사용하지 않은 기술적 이유는 무엇입니까?


75

필자 NamingThingsLikeThis.txt는 파일 이름에 공백을 지원하는 대부분의 최신 운영 체제에도 불구하고 파일 이름에 공백을 사용하지 않는 사람들과 관련하여 오늘 자극을 표현한 사람을 알고 있습니다 .

이 있습니까 기술적 인 이유 가 (적절한) 공백없이 파일 이름을보고 아직도 흔한 것으로는? 그렇다면 파일 이름의 공백을 피하거나 권장하지 않는 기술적 이유는 무엇이며 어떤 환경에서 관련이 있습니까?

내가 생각할 수있는 가장 분명한 이유와 일반적으로 피하는 이유는 그러한 파일을 다룰 때 명령 행에 필요한 추가 인용 부호입니다. 다른 중요한 기술적 이유가 있습니까?


당신이 말했듯이, 그들은 명령 행에서 다루기가 훨씬 쉽습니다. 그리고 프로그래밍을 위해 파일 이름에 공백을 사용할 수 있는지 또는 가능한지 확실하지 않습니다.
Alvin Row

답변:


66

파일 이름의 공백 문자는 명령 줄의 많은 컨텍스트와 스크립트에서 올바르게 이스케이프되도록주의 해야하는 스크립트의 속담에서 올바른 왕실 고통이 될 수 있습니다. 달리는.

파일 / dir / what-ever가 절대로 그러한 상황에서 사용되지 않을 것이라 확신하더라도 파일을 보관하지 않는 것이 더 안전합니다.

그리고 오래된 습관은 열심히 죽습니다.


그들은 또한 처리해야 할 왕실의 고통입니다. 그러면 경로를 작성하고 수정해야합니다. 다시 조각 / 다시 인용하기 전에, 특히 조각이 조작 될 다른 코드 비트로 전송되는 경우, 구성 요소의 인용 부호가없고 이스케이프되지 않은 상태로 수정해야합니다.
afrazier

2
공백이 잘못되었다고 생각되면 '\n'이름에 개행 ( )이있는 파일을 처리하십시오 . (유닉스 계열 시스템은 실제로 이것을 허용합니다. Windows는 일반적으로 또는 적어도 어렵습니다.)
Keith Thompson

31

커맨드 라인과 오래된 습관에 대한 다른 답변 외에도 공백이 포함 된 파일 이름을 처리 할 때 특별한주의가 필요한 많은 네트워크 프로토콜이 있습니다.

(웹 사이트에서 "Product List.pdf"를 다운로드하려고했는데 방금 "Product"라는 파일로 끝났다면 다른 쪽 프로그래머가 알지 못했기 때문에 물린 ​​것입니다. http Content-Disposition 헤더에 대한 인용 규칙을 파악하지 마십시오.)


11
+1. 시작을위한 HTTP. URL의 공백 (HTTP뿐만 아니라 모든 프로토콜의 경우)은 % 20 또는 +로 이스케이프되어야합니다. 필요에 따라 인코딩되지 않으면 혼란이 발생할 수 있습니다. 웹 페이지의 경우 공백과 밑줄 ( "_")을 대체하는 데 일반적으로 사용되는 시각적 인 이유가 있습니다. 밑줄이있는 링크에서 모두 동일하게 보일 수 있으므로 링크를 수동으로 복사하거나 다른 사람이 읽을 수 있습니다. 잘못되었습니다.
David Spillett

5
URL로 인코딩 될 필요가있는 공백에 대한 가장 성가신 것 중 하나는 특정 소프트웨어가 공백을 인코딩 된 상태로 유지하는 경향이 있다는 것입니다.
SamB

이거 진짜야? 2018 년에 이런 일이 발생합니까?
Chris Calo

@ChrisCalo이 답변은 2018이 아닌 2009 년에 제공되었다는 것을 알 수 있습니다. 그러나 여전히 2018 년에도 발생합니다. 대부분의 신인 개발자는 프레임 워크를 사용하여 웹 사이트를 처음부터 새로 작성하지 않고 프레임 워크를 사용하므로 여전히 그렇지 않습니다. 이슈.
Stobor

28

많은 이유가 역사적입니다. 그렇다고 오늘날 이해가되지 않는다는 의미는 아닙니다.

이식성 문제

파일 이름을 지정할 때 다른 (파일) 시스템이 해당 파일 이름을 처리하는 방법을 고려해야 할 수도 있습니다. 파일 이름의 문자는 시스템에는 문제가 없지만 다른 시스템에는 문제가 될 수 있습니다.

따라서 이전 시스템에서 파일에 쉽게 액세스 할 수있는 가능성이 가장 적은 경우 안전한 문자 만 선택하면됩니다 . 여기에는 기존의 복구 시스템으로 부팅하거나 최신 Windows 버전이 여전히 MS-DOS를 기반으로하고 있다는 두려움이 포함될 수 있습니다.

길이

파일 시스템은 파일의 길이를 제한 할 수 있습니다. MS-DOS가 8.3 파일 이름 으로 제한되었던 시절에는 더욱 심각했습니다 . 따라서 공백을 남기면 이름에 더 의미있는 문자를 넣을 수 있습니다.

다른 여러 파일 시스템도 파일 이름 길이에 대한 엄격한 제한을 정의했습니다. Wikipedia에는 기사 에서 세부 정보를 원하는 파일 시스템 비교대한 표가 있습니다.

예약 된 문자

MS-DOS는 또한 공백 문자를 예약 문자로 정의했습니다. 이것은 공백 문자가 FAT에서 패딩에 사용 되었기 때문 입니다. 또한 MS-DOS는 셸에서 이스케이프 시스템을 제공하지 않았습니다.

명령 줄 해석

내가 알고있는 대부분의 명령 줄은 공백 문자를 매개 변수 구분 기호로 사용합니다 . 파일 이름을 올바르게 이스케이프 처리하지 않으면 파일 이름의 일부를 호출하려는 응용 프로그램의 매개 변수로 해석 할 수 있으므로 심각한 결과를 초래할 수 있습니다.

차이점을 고려하십시오

rm foo bar

rm "foo bar"

위에 링크 된 WikiPedia 기사는 명령을 제대로 이스케이프 처리하지 못함으로써 도입 된 애매함을 지적합니다.

처음에 파일 및 디렉토리 이름에 임베드 된 공백을 금지하여 (예 : 밑줄 '_'로 공백을 대체하여), 또는 명령 행 인터프리터 및 이러한 매개 변수를 사용하는 프로그램에서 지원하는 경우 모호성을 방지 할 수 있습니다. 따옴표 문자 사이에 공백이 포함 된 이름을 묶거나 공백 앞에 이스케이프 문자를 사용하여 인수 (일반적으로 백 슬래시 ( '\')) 예를 들어

Long path/Long program name Parameter one Parameter two ...

모호합니다 ( "프로그램 이름"이 프로그램 이름의 일부입니까, 아니면 두 개의 매개 변수입니까?). 하나

Long_path/Long_program_name Parameter_one Parameter_two ...,
LongPath/LongProgramName ParameterOne ParameterTwo ...,
"Long path/Long program name" "Parameter one" "Parameter two" ...

및 Long \ path / Long \ program \ name 매개 변수 \ one 매개 변수 \ two ...

모호하지 않습니다.

URL (Uniform Resource Locator)

URL을 사용하여 파일의 위치를 ​​설명하려고 할 때 공백을 이스케이프해야합니다.

여러 가지 이유로 문자가 안전하지 않을 수 있습니다. 공백 문자는 유효하지 않은 공백이 사라지고 URL이 전사되거나 조판되거나 워드 프로세싱 프로그램의 처리를받을 때 중요하지 않은 공백이 생길 수 있으므로 안전하지 않습니다.

출처 : RFC1738

따라서 공백 %20대신에 공백을 교체해야합니다 . 이렇게하면 URL의 파일 이름 부분을 읽기 어렵게하므로 사람들이 먼저 파일 이름을 피할 수 있습니다.


25

공백은 %20웹에서 파일 이름으로 인코딩되거나 변환 되므로 사이트 자산을 관리하기가 어려울 수 있습니다.

Image 1.png와 것은 Image%201.png혼란이다. Image001.png대신 사용하기가 더 쉽습니다 .

이것은 실제로 명령 줄의 이스케이프 시퀀스와 동일한 범주에 속합니다.


5

때로는 명령 행을 처리하거나 이전 OS를 사용할 때 또는 다른 OS에서 컴파일 될 프로그램을 작성할 때 또는 문제가 발생할 수있는 여러 가지 이유가있을 때 공백이 문제가 될 수 있습니다. 실제로 file-without-blanks.txt 또는 file_without_blanks.txt 와 같이 파일 을 작성하는 것이 어렵다고 생각 합니다. 예를 들어 밑줄이 그어진 글꼴을 다룰 때 밑줄이 때때로 보이지 않을 수 있기 때문에 나는 황혼을 선호합니다.

그러나 대부분 노년기의 습관 문제입니다. 어느 나는 충분하다고 생각하지 않는 프로 포기하는 이유.


아마도 관련이 없지만 추가로 여기에 넣겠습니다. 파일 이름에 공백이있는 사람들은 대개 그다지 많이 생각하지 않습니다. 파일 이름에서 파일을 피하는 것이 좋은 이유를 잘 모르는 사람들.
그리고 우리는 모두 동의 할 수 있습니다. "친애하는 각하 또는 부인, 나는 당신에게 yo.doc를 알리기 위해이 편지를 쓰고 있습니다."

공백뿐만 아니라 파일 길이도 무언가를 계산하며 IMHO는 30자를 넘지 않아야합니다. 내부에 공백이있는 긴 파일 이름의 경우 CD, DVD 등을 기록 할 때 오래된 OS 및 Win 및 * nix 플랫폼 사이에서 읽어야하는 파일도 좋습니다.


2
게으른 Word 사용자 ...
SamB
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.