다음을 통해 공유


대/소문자 구분 조정

대/소문자 구분은 대문자(FOO.txt) 및 소문자(foo.txt) 문자를 파일 이름이나 디렉터리에서 서로 다르게 취급할 것인지(대/소문자 구분) 아니면 똑같은 것으로 취급할 것인지(대/소문자 구분 안 함) 여부를 결정합니다.

  • 대/소문자 구분: FOO.txt ≠ foo.txt ≠ Foo.txt
  • 대/소문자 구분 없음: FOO.txt = foo.txt = Foo.txt

Windows 및 Linux의 대/소문자 구분 차이점

Linux 및 Windows 파일 및 디렉터리를 모두 사용하는 경우, 대/소문자 구분 처리 방법을 조정해야 할 수 있습니다.

표준 동작:

  • Windows 파일 시스템은 파일 및 디렉터리 이름을 대/소문자를 구분하지 않는 것으로 처리합니다. FOO.txt 및 foo.txt는 동일한 파일로 처리됩니다.
  • Linux 파일 시스템은 파일 및 디렉터리 이름을 대/소문자를 구분하는 것으로 처리합니다. FOO.txt 및 foo.txt는 다른 파일로 처리됩니다.

Windows 파일 시스템은 디렉터리당 특성 플래그를 사용하여 대/소문자 구분 설정을 지원합니다. 표준 동작은 대/소문자를 구분하지 않지만, 특성 플래그를 할당하여 디렉터리 대/소문자를 구분하여 대/소문자별로만 다를 수 있는 Linux 파일 및 폴더를 인식할 수 있습니다.

WSL(Linux용 Windows 하위 시스템) 파일 시스템에 드라이브를 탑재할 때 특히 그렇습니다. WSL 파일 시스템에서 작업할 때 Linux를 실행하므로, 파일 및 디렉터리에서 기본적으로 대/소문자를 구분하는 것으로 처리됩니다.

참고 항목

과거에 이름이 대/소문자만 다른 파일이 있는 경우, Windows 애플리케이션은 파일 시스템을 대/소문자를 구분하지 않는 것으로 간주하고 이름이 다른 파일만 구분할 수 없으므로 Windows에서 이러한 파일에 액세스할 수 없습니다. Windows 파일 탐색기는 두 파일을 모두 표시하지만, 선택한 파일에 관계없이 하나만 열립니다.

파일 및 디렉터리의 대/소문자 구분 변경

다음 단계에서는 대/소문자를 구분하고 대/소문자만 다른 파일 및 폴더를 인식하도록 Windows 파일 시스템에서 디렉터리를 변경하는 방법에 대해서 설명합니다.

Warning

일부 Windows 애플리케이션은 파일 시스템이 대/소문자를 구분하지 않는다고 가정하여 올바른 대/소문자를 사용하여 파일을 참조하지 않습니다. 예를 들어, 애플리케이션에서 파일 이름을 변환하여 대/소문자를 모두 사용하는 것은 드문 일이 아닙니다. 대/소문자를 구분하는 것으로 표시된 디렉터리의 경우, 이러한 애플리케이션이 더 이상 파일에 액세스할 수 없음을 의미합니다. 또한, Windows 애플리케이션이 대/소문자 구분 파일을 사용하는 디렉터리 트리에 새 디렉터리를 만드는 경우, 이러한 디렉터리가 대/소문자를 구분하지 않습니다. 이렇게 하면 대/소문자를 구분하는 디렉터리의 경우, Windows 도구로 작업하기가 어려울 수 있으므로 Windows 파일 시스템 대/소문자 구분 설정을 변경할 때는 주의해야 합니다.

현재 대/소문자 구분 검사

디렉터리가 Windows 파일 시스템에 대/소문자를 구분하는지 확인하려면 다음 명령을 실행합니다.

fsutil.exe file queryCaseSensitiveInfo <path>

<path>을(를) 파일 경로로 바꿉니다. Windows(NTFS) 파일 시스템의 디렉터리의 경우, <path>은(는) C:\Users\user1\case-test와(과) 같이 표시되거나 user1 디렉터리에 이미 있는 경우, 다음을 실행할 수 있습니다. fsutil.exe file setCaseSensitiveInfo case-test

대/소문자 구분 조정

디렉터리별 대/소문자 구분에 대한 지원은 Windows 10, 빌드 17107에서 시작되었습니다. Windows 10, 빌드 17692에서는 WSL 내부에서 디렉터리에 대한 대/소문자 민감도 플래그 검사 및 수정을 포함하도록 지원이 업데이트되었습니다. 대/소문자 구분은 system.wsl_case_sensitive(이)라는 확장 특성을 사용하여 노출됩니다. 이 특성의 값은 대/소문자를 구분하지 않는 디렉터리에 대해 0, 대/소문자를 구분하는 디렉터리에 대해 1로 표시됩니다.

디렉터리의 대/소문자 구분을 변경하려면 관리자 권한 (관리자 권한으로 실행)을 실행해야 합니다. 대/소문자 구분 플래그를 변경하려면 디렉터리에 대한 "쓰기 특성", "파일 만들기", "폴더 만들기" 및 "하위 폴더 및 파일 삭제" 권한이 필요합니다. 자세한 내용은 문제 해결 섹션을 참조하십시오.

대/소문자를 구분하도록(FOO ≠ foo) Windows 파일 시스템의 디렉터리를 변경하려면, 관리자 권한으로 PowerShell을 실행하고 다음 명령을 사용합니다.

fsutil.exe file setCaseSensitiveInfo <path> enable

대/소문자를 구분하지 않도록(FOO = foo) Windows 파일 시스템의 디렉터리를 다시 변경하려면, 관리자 권한으로 PowerShell을 실행하고 다음 명령을 사용합니다.

fsutil.exe file setCaseSensitiveInfo <path> disable

해당 디렉터리의 대/소문자 민감도 플래그 특성을 변경하려면 디렉터리가 비어 있어야 합니다. 이름이 대/소문자별로만 다른 폴더/파일이 포함된 디렉터리에서는 대/소문자 구분 플래그를 사용하지 않도록 설정할 수 없습니다.

대/소문자 구분 상속

새 디렉터리를 만들 때 해당 디렉터리가 부모 디렉터리에서 대/소문자 민감도를 상속합니다.

Warning

WSL 1 모드에서 실행할 때 이 상속 정책에는 예외가 있습니다. 배포가 WSL 1 모드에서 실행되는 경우, 디렉터리별 대/소문자 구분 플래그는 상속되지 않습니다. 대/소문자 구분 디렉터리에서 만든 디렉터리가 자동으로 대/소문자를 구분하지 않습니다. 각 디렉터리를 대/소문자를 구분하는 것으로 명시적으로 표시해야 합니다.

WSL 구성 파일에서 드라이브를 탑재하기 위한 대/소문자 구분 옵션

WSL 구성 파일을 사용하여 Linux용 Windows 하위 시스템 드라이브를 탑재할 때 대/소문자 구분을 관리할 수 있습니다. 설치한 각 Linux 배포판에는 /etc/wsl.conf(이)라는 자체 WSL 구성 파일이 있을 수 있습니다. 드라이브를 탑재하는 방법에 대한 자세한 내용은 WSL 2에서 Linux 디스크 탑재 시작하기를 참조하십시오.

드라이브를 탑재할 때 wsl.conf 파일에서 대/소문자 민감도 옵션을 구성하려면 다음을 수행합니다.

  1. 사용할 Linux 배포(예: Ubuntu)를 엽니다.
  2. etc 폴더가 표시될 때까지 디렉터리를 변경합니다(home 디렉터리에서 cd .. 위로 이동해야 할 수 있음).
  3. etc 디렉터리의 파일을 나열하여 wsl.conf 파일이 이미 있는지 확인합니다(ls 명령 또는 explorer.exe .을(를) 사용하여 Windows 파일 탐색기로 디렉터리 보기).
  4. wsl.conf 파일이 아직 없는 경우, sudo touch wsl.conf을(를) 사용하거나 sudo nano /etc/wsl.conf을(를) 실행하여 만들 수 있습니다. 그러면 Nano 편집에서 저장할 때 파일이 만들어질 수 있습니다.
  5. wsl.conf 파일에 추가할 수 있는 옵션은 다음과 같습니다.

기본 설정: dir디렉터리당 대/소문자 구분을 사용하도록 설정합니다.

[automount]
options = case = dir

대/소문자 구분 사용할 수 없음(탑재된 NTFS 드라이브의 모든 디렉터리가 대/소문자를 구분하지 않음) off

[automount]
options = case = off

(NTFS) 드라이브의 모든 디렉터리를 대/소문자를 구분하는 것으로 처리합니다. force

[automount]
options = case = force

이 옵션은 WSL 1로 실행되는 Linux 배포판에서 드라이브를 탑재하는 경우에만 지원되며 등록 키가 필요할 수 있습니다. 등록 키를 추가하려면, 관리자 권한(관리자) 명령 프롬프트 reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\lxss /v DrvFsAllowForceCaseSensitivity /t REG_DWORD /d 1에서 명령을 사용할 수 있습니다.

변경 내용을 적용하려면 wsl.conf 파일을 변경한 후 WSL을 다시 시작해야 합니다. wsl --shutdown 명령을 사용하여 WSL을 다시 시작할 수 있습니다.

모든 드라이브에 대한 특정 대/소문자 구분 설정을 사용하여 드라이브(DrvFs 파일 시스템 플러그인을 사용하여 /mnt/c, /mnt/d 등)에서 디스크를 사용할 수 있도록 하려면 위에서 설명한 대로 /etc/wsl.conf을(를) 사용합니다. 하나의 특정 드라이브에 대한 기본 탑재 옵션을 설정하려면, /etc/fstab 파일을 사용하여 이러한 옵션을 지정합니다. WSL 구성 옵션에 대한 자세한 내용은 wslconf를 사용하여 배포판별 시작 설정 구성하기를 참조하십시오.

WSL 배포에 탑재된 드라이브의 대/소문자 구분 변경

WSL 배포에 탑재된 NTFS 형식의 드라이브는 기본적으로 대/소문자를 구분하지 않습니다. WSL 배포(예: Ubuntu)에 탑재된 드라이브의 디렉터리에 대한 대/소문자 구분을 변경하려면 Windows 파일 시스템에 대해 위에 나열된 것과 동일한 단계를 따릅니다. (EXT4 드라이브는 기본적으로 대/소문자를 구분합니다.)

디렉터리에서 대/소문자 구분(FOO ≠ foo)을 사용하도록 설정하려면 다음 명령을 사용합니다.

fsutil.exe file setCaseSensitiveInfo <path> enable

디렉터리에서 대/소문자 구분을 사용하지 않도록 설정하고 대/소문자를 구분하지 않는 기본값(FOO = foo)으로 돌아가려면 다음 명령을 사용합니다.

fsutil.exe file setCaseSensitiveInfo <path> disable

참고 항목

WSL이 실행되는 동안 탑재된 드라이브에 대한 기존 디렉터리의 대/소문자 구분 플래그를 변경하는 경우, WSL에 해당 디렉터리에 대한 참조가 없는지 확인합니다. 그렇지 않으면, 변경 내용이 적용되지 않습니다. 즉, 디렉터리(또는 해당 하위 항목)를 현재 작업 디렉터리로 사용하는 것을 포함하여 WSL 프로세스에서 디렉터리를 열어서는 안 됩니다.

Git을 사용하여 대/소문자 구분 구성

Git 버전 제어 시스템에는 작업 중인 파일의 대/소문자 구분을 조정하는 데 사용할 수 있는 구성 설정도 있습니다. Git를 사용하는 경우 git config core.ignorecase 설정을 조정할 수 있습니다.

Git를 대/소문자 구분(FOO.txt ≠ foo.txt)으로 설정하려면 다음을 입력합니다.

git config core.ignorecase false

Git를 대/소문자 구분하지 않음(FOO.txt = foo.txt)으로 설정하려면 다음을 입력합니다.

git config core.ignorecase true

대/소문자를 구분하지 않는 파일 시스템에서 이 옵션을 false로 설정하면 혼동 오류, 거짓 충돌 또는 중복 파일이 발생할 수 있습니다.

자세한 내용은 Git 구성 설명서를 참조하십시오.

문제 해결

내 디렉터리에는 대/소문자가 혼합되어 대/소문자 구분이 필요한 파일이 있지만, Windows FS 도구는 이러한 파일을 인식하지 않습니다.

Windows 파일 시스템 도구를 사용하여 대/소문자 혼합 파일이 포함된 Linux 디렉터리에서 작업하려면, 새 디렉터리를 만들고 대/소문자를 구분하도록 설정한 다음 해당 디렉터리에 파일을 복사해야 합니다(git clone 또는 untar 사용). 파일은 대/소문자가 혼합된 상태로 유지됩니다. (파일을 대/소문자를 구분하지 않는 디렉터리로 이동하려고 했지만 충돌이 발생한 경우, 덮어쓰여서 더 이상 사용할 수 없는 파일이 있을 수 있습니다.)

오류 : 디렉터리가 비어 있지 않습니다.

다른 파일 또는 디렉터리가 포함된 디렉터리에서는 대/소문자 구분 설정을 변경할 수 없습니다. 새 디렉터리를 만들고, 설정을 변경한 다음, 혼합 대/소문자 파일을 복사해 보십시오.

오류: 액세스 거부됨

대/소문자 구분 플래그를 변경하려면 디렉터리에 대한 "특성 쓰기", "파일 만들기", "폴더 만들기" 및 "하위 폴더 및 파일 삭제" 권한이 필요합니다. 이러한 설정을 확인하려면, Windows 파일 탐색기 디렉터리를 엽니다. (명령줄에서 explorer.exe . 명령을 사용합니다.) 디렉터리를 마우스 오른쪽 단추로 클릭하고 속성을 선택하여 문서 속성 창 연 다음, 편집을 선택하여 디렉터리에 대한 권한을 보거나 변경합니다.

Properties windows to view or change permissions on NTFS directories

오류: 이 작업에 로컬 NTFS 볼륨이 필요합니다.

대/소문자 구분 특성은 NTFS 형식의 파일 시스템 내의 디렉터리에만 설정할 수 있습니다. WSL(Linux) 파일 시스템의 디렉터리는 기본적으로 대/소문자를 구분합니다. (fsutil.exe 도구를 사용하여 대/소문자를 구분하지 않도록 설정할 수 없습니다.)

추가 리소스