대/소문자 구분 조정

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

  • 대/소문자 구분: FOO.txt ≠ foo.txt ≠ Foo.txt
  • 대/소문자 구분: FOO.text = 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>를 파일 경로로 대체합니다. NTFS(Windows) 파일 시스템의 디렉터리에 대한 는 <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

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.config

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

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

[automount]
options = case = dir

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

[automount]
options = case = off

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

[automount]
options = case = force

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

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

모든 드라이브에 대한 특정 대/소문자 구분 설정으로 드라이브를 탑재하려면(DrvFs 파일 시스템 플러그 인을 사용하여 /mnt에서 /mnt/c, /mnt/d 등) 디스크를 사용할 수 있도록 하려면 위에서 설명한 대로 를 /etc/wsl.conf 사용합니다. 하나의 특정 드라이브에 대한 기본 탑재 옵션을 설정하려면 파일을 사용하여 이러한 옵션을 지정합니다. 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 . 사용:). 디렉터리를 마우스 오른쪽 단추로 클릭하고 속성을 선택하여 문서 속성 창 연 다음 편집을 선택하여 디렉터리에 대한 권한을 보거나 변경합니다.

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

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

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

추가 리소스