Windows 10에서 폴더에 대소문자 구분 모드 활성화
이미 알고 계시겠지만 Windows 파일 시스템인 NTFS는 파일 및 폴더 이름을 대소문자를 구분하지 않습니다. 예를 들어 OS와 앱의 경우 MyFile.txt와 myfile.txt는 동일한 파일입니다. 그러나 Linux에서는 상황이 다릅니다. 이 OS의 경우 두 개의 다른 파일입니다. 이러한 동작의 차이는 WSL 사용자에게 문제를 일으킬 수 있습니다. 이를 해결하기 위해 Windows 10에는 폴더에 대해 대소문자 구분 모드를 활성화하는 기능이 포함되어 있습니다.
광고
사용하신 경우 Linux용 Windows 하위 시스템, Windows 파일 시스템(/mnt/c, /mnt/d 등 아래에 마운트됨)을 대소문자를 구분하는 것으로 취급할 수 있다는 것을 알고 있을 것입니다. 이는 무엇보다도 이름이 대소문자만 다른 파일을 생성할 수 있음을 의미합니다(예: foo.txt 및 FOO.TXT).
그러나 Windows에서 이러한 파일을 사용하는 것은 실제로 불가능했습니다. Windows 응용 프로그램은 파일 시스템을 대소문자를 구분하지 않으므로 이름이 대소문자만 다른 파일을 구별할 수 없습니다. 파일 탐색기는 두 파일을 모두 표시하지만 클릭한 파일에 관계없이 하나만 열립니다.
Windows 내부자 빌드 17093부터 Windows에서 대소문자를 구분하는 파일을 처리하는 새로운 방법인 디렉터리별 대소문자 구분이 있습니다. 이 기능은 대소문자를 구분하는 파일을 사용할 때 사용자에게 더 나은 상호 운용성을 제공하기 위해 추가되었습니다. 또한 일반 Windows 응용 프로그램과 함께 사용할 수 있습니다. Windows 10 빌드 17110부터 이 동작이 기본값입니다.
자세한 내용은
Windows의 대소문자 구분
Windows NT 운영 체제 제품군(Windows 10 포함)은 항상 대소문자를 구분하는 파일 시스템 작업을 수행할 수 있었습니다. 응용 프로그램은 통과할 수 있습니다.
FILE_FLAG_POSIX_SEMANTICS
플래그 파일 생성
API는 경로가 대소문자를 구분하는 것으로 처리되기를 원함을 나타냅니다. 그러나 호환성을 위해 이 동작을 재정의하는 전역 레지스트리 키가 있습니다. 이 키가 설정되면 모든 파일 작업은 대소문자를 구분하지 않습니다. FILE_FLAG_POSIX_SEMANTICS
플래그가 지정됩니다. Windows XP 이후로 이것이 기본값이었습니다.
Linux용 Windows 하위 시스템은 자체적으로 해당 레지스트리 키를 우회하는 다른 메커니즘을 사용하므로 대소문자를 구분하는 파일 시스템 작업을 수행할 수 있습니다. 이것은 WSL에서 실행되는 Linux 응용 프로그램이 해당 전역 레지스트리 키 세트가 있는 경우에도 실제 Linux에서와 마찬가지로 대소문자만 다른 파일 이름을 사용할 수 있도록 합니다.
불행히도 이로 인해 Windows 응용 프로그램에서 액세스할 수 없는 파일이 남게 됩니다. 전역 레지스트리 키를 변경할 수 있지만 여전히 사용하는 응용 프로그램에서만 작동합니다. FILE_FLAG_POSIX_SEMANTICS
, 이렇게 하면 모든 드라이브의 모든 파일에 대한 동작이 변경되며, 이는 의도하지 않거나 일부 응용 프로그램을 중단시킬 수 있습니다.
디렉토리별 대소문자 구분
이 문제를 해결하기 위해 Microsoft는 디렉터리에 적용할 수 있는 새로운 대소문자 구분 플래그를 추가했습니다. 이 플래그가 설정된 디렉토리의 경우 해당 디렉토리의 파일에 대한 모든 작업은 다음 여부에 관계없이 대소문자를 구분합니다. FILE_FLAG_POSIX_SEMANTICS
지정되었습니다. 이는 대소문자를 구분하는 것으로 표시된 디렉토리에 대소문자만 다른 두 개의 파일이 있는 경우 모든 응용 프로그램에서 해당 파일에 액세스할 수 있음을 의미합니다.
폴더에 대소문자 구분 모드 활성화
이 기능을 활성화하거나 비활성화하려면 내장된 fsutil.exe 앱을 사용해야 합니다.
폴더에 대해 대소문자 구분 모드를 활성화하려면, 다음을 수행합니다.
- 열려있는 상승된 명령 프롬프트.
- 다음 명령을 입력합니다.
fsutil.exe 파일 setCaseSensitiveInfo "폴더의 전체 경로" 활성화
경로 부분을 PC와 일치하는 올바른 경로로 대체하십시오.
예를 들어,fsutil.exe 파일 setCaseSensitiveInfo "C:\data\Winaero\Linux" 활성화
- 완료되었습니다.
이제 동일한 이름과 대소문자만 다른 두 개의 파일을 만들 수 있습니다. Windows 10은 이 특정 폴더에서 올바르게 처리합니다.
폴더의 기능 상태를 보려면 다음 명령을 실행하십시오.
fsutil.exe 파일 queryCaseSensitiveInfo "폴더의 전체 경로"
예를 들어,
fsutil.exe 파일 queryCaseSensitiveInfo "C:\data\Winaero\Linux"
다음과 같은 내용이 표시됩니다.
마침내, 폴더에 대해 대소문자 구분 모드를 비활성화하려면, 관리자로 열린 명령 프롬프트에서 다음 명령을 실행합니다.
fsutil.exe 파일 setCaseSensitiveInfo "C:\data\Winaero\Linux" 비활성화
올바른 폴더 경로를 사용하면 완료됩니다.
메모: 비어 있지 않은 폴더에 대해 CaseSensitiveInfo 속성을 비활성화하는 것은 지원되지 않습니다. 비활성화하기 전에 폴더에서 모든 파일을 제거해야 합니다.
그게 다야