최근 수정 시각 : 2024-08-17 00:25:57

파일 이름으로 사용할 수 없는 문자


1. 개요2. 이유3. 우회
3.1. 진짜 특수문자 강제로 넣기3.2. 비슷한 효과 내기
3.2.1. 전각 문자 또는 닮은꼴 문자 사용3.2.2. desktop.ini
4. 그 외 불가능한 경우

1. 개요

파일:파일 이름에는 다음 문자를 사용할 수 없습니다.png파일:A file name can't contain any of the following characters.png
파일 이름에는 다음 문자를 사용할 수 없습니다.
A file name can't contain any of the following characters.[1]
Windows에서 폴더 또는 파일 이름에 사용할 수 없는 문자에 대한 정보이다.

2. 이유

각 문자는 이미 다른 용도로 쓰이고 있으므로 파일 이름으로 이용할 수 없는데, 이를 정리하면 다음과 같다.
문자 이유
\\ 디렉터리의 구분자로 쓰인다.[2]
/
: C:, D:와 같은 드라이브 기호로 쓰인다.
* 와일드 카드로 쓰인다. ?는 한 글자의 의미로 쓰이기도 하며, UNC(Universal Naming Convention)에도 사용된다.
?
" 경로의 시작과 끝을 나타낸다.[3]
< 리다이렉트, 파이프 등 특수 문법에 쓰인다.
>
|

3. 우회

특수한 방법으로 문자 제한을 우회하거나 유사한 효과를 내는 법이다.

3.1. 진짜 특수문자 강제로 넣기

Windows OS나 Parted magic 등을 이용하여 강제로 생성하는 방법이 있지만 오류가 발생하니 권장되지 않는다. Hex editor 프로그램인 HxD 등을 사용해도 만들 수 있다.
  • 실제 실험 영상: #1 #2

3.2. 비슷한 효과 내기

3.2.1. 전각 문자 또는 닮은꼴 문자 사용

해당 특수문자의 반각 문자는 사용할 수 없지만, 전각 문자는 사용할 수 있다. ㄱ을 쓰고 한자키를 누르거나 한영키처럼 파일 이름을 변경하는 창에서 Alt + = 키를 누르면 반각, 전각 입력이 전환된다. 또 한번 눌러 전각/반각문자 전환을 하지 않으면 이후로도 전각문자가 입력되며(특수문자 뿐만 아니라 알파벳 대소문자도 전각으로 바뀌어 입력되며), :이나 ; 같은 폭이 좁은 문자를 입력하기 전에는 알아채기 힘드니 주의.
반각 전각 닮은꼴
\\
/
:
*
? ❓ 또는 ❔
" “ 또는 ”
< 또는 〈
\> 또는 〉
|

3.2.2. desktop.ini

겉보기에 폴더가 한글로 보이는 원리와 같이, 폴더에 대한 설정을 담고 있는 desktop.ini를 이용하는 방법이다.
  1. 원하는 폴더 안에 'desktop.ini' 파일을 만들어준다.
  2. 메모장으로 연다.
  3. [.ShellClassInfo]를 입력한다.
  4. 다음 줄에 LocalizedResourceName=(폴더이름)을 입력한다.
  5. 저장하고, 해당 폴더에 속성 > 사용자 지정 > 기본값 복원을 눌러준다.

실제 폴더 이름을 변경하지 않기 때문에, 경로상에서는 원래 이름이 보인다.[4]

4. 그 외 불가능한 경우

  • '.(마침표)' 문자로만 이루어진 이름도 쓸 수 없다. 알파벳이나 숫자와 조합하면 쓸 수 있다.
  • 반각 공백 ' '으로 시작하거나 끝나는 이름, .으로 끝나는 이름은 공백과 점이 자동으로 지워진다.
  • 윈도우 이외 운영체제에서 쓸 수 없는 문자들도 있다. 리눅스에서는 /, macOS에서는 :이 사용 불가능하다.
  • 윈도우에서는 다음과 같은 예약어도 사용 불가능하다. 대부분 MS-DOS 시절의 예약어로, 지금은 쓰이지 않는 것이 한가득이다.
    • CON: 'copy' 명령어 뒤에 붙이면 파일을 생성하는 기능을 한다. 윈도우에서도 명령 프롬프트에서 먹힌다.
    • AVX: 시리얼 포트에 연결된 외부기기 관련 명령어다.
    • NUL: Bit-bucket device를 뜻한다. 거의 사용되지 않는다.
    • PRN: 패러럴 포트에 연결된 외부기기 관련 명령어다. 패러럴 포트에 연결하는것이 대부분 프린터이므로 PRiNt의 약자를 썼다.
    • COM0, COM1, ..., COM9: 시리얼 포트의 명칭이다.
    • LPT0, LPT1, ..., LPT9: 패러럴 포트의 명칭이다.
  • 예약어를 억지로 사용하기
    • 명령 프롬포트에 "md \\.\C:\Users\%username%\Desktop\(폴더이름)"을 치면 con, aux등도 폴더명으로 만들 수 있다. 이렇게 만든 폴더는 평범한 방법으로는 지워지지 않고 "rd \\.\C:\Users\%username%\Desktop\(폴더이름)"을 해야 지워진다.

[1] 일부 언어나 폰트의 경우 백슬래시(\\)나 엔화(¥) 기호로 나온다. 한국어는 원화(₩)로 나온다.[2] C:\\Users\\user\\Downloads\\namuwiki.url[3] "C:\\Users\\user\\Downloads\\namuwiki.url"[4] "C:\\Users\\user\\Desktop\\(원래 이름)