대/소문자 구분 조정

대/소문자 구분은 대문자(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 파일 시스템에서 디렉터리를 변경하는 방법을 설명합니다.

경고

파일 시스템이 대/소문자를 구분하지 않는다고 가정하는 일부 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이 됩니다.

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

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

fsutil.exe file setCaseSensitiveInfo <path> enable

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

fsutil.exe file setCaseSensitiveInfo <path> disable

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

대/소문자 구분 상속

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

경고

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

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

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

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

  1. 사용할 Linux 배포를 엽니다(예: Ubuntu).
  2. 폴더가 표시 etc 될 때까지 디렉터리를 변경합니다(디렉터리에서 home 위로 이동해야 할 cd .. 수 있음).
  3. 디렉터리에 파일을 etc 나열하여 파일이 이미 있는지 wsl.conf 확인합니다(명령을 사용 ls 하거나 explorer.exe . Windows 파일 탐색기 있는 디렉터리를 보려면).
  4. wsl.conf 파일이 아직 없는 경우 Nano 편집기에서 저장할 때 파일을 만드는 다음을 sudo touch wsl.conf 사용하거나 실행sudo nano /etc/wsl.conf하여 파일을 만들 수 있습니다.
  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을 다시 시작할 수 있습니다. wsl --shutdown

모든 드라이브에 대한 특정 대/소문자 민감도 설정을 사용하여 드라이브(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 클론 또는 언타르 사용). 파일은 대/소문자가 혼합된 상태로 유지됩니다. (파일을 대/소문자를 구분하지 않는 디렉터리로 이동하려고 했지만 충돌이 발생한 경우 덮어쓰여서 더 이상 사용할 수 없는 파일이 있을 수 있습니다.)

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

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

오류: 액세스 거부됨

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

NTFS 디렉터리에 대한 사용 권한을 보거나 변경하는 속성 창

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

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

추가 리소스