모든 Windows 버전은 대소 문자를 구분하지 않습니까?


18

Windows OS가 대소 문자를 구분하지 않는다는 것을 알고 있습니다. 모든 Windows OS (Windows 95에서 Windows 7까지)에 해당됩니까? Windows 대 / 소문자를 구분하기위한 레지스트리 설정이 있습니까?


2
예,이 특성이 상속 된 모든 버전의 MS-DOS와 마찬가지로 그렇습니다. (물론 MS-DOS는 대소 문자를 보존하지 않았으므로 상황이 계속 진행되었습니다 :-).
— Richard

무엇에 대해 대소 문자를 구분하지 않습니까? 파일명? 비밀번호?
— Peter Mortensen

답변:


15

예, 모든 Windows 버전에 해당됩니다. Windows 대 / 소문자를 구분할 방법이 없습니다. 원래 Unix / Linux 용으로 개발 된 후 이식 된 일부 앱은 대소 문자를 구분할 수 있습니다. 예를 들어 Cygwin은 대소 문자를 구분합니다. 이 동작은 매우 드 rare니다.


7
"Windows 대소 문자를 구분할 방법이 없습니다." 없는 매우 정확한. 다른 답변에서 설명한 것처럼 Windows의 일부를 대소 문자를 구분하는 방법이 있습니다.
— sleske

A로부터 있다고하지만 그것은 사실 사용자 관점, 윈도우 파일 이름은 대소 문자를 구분하고, 그 변화 할 (쉬운) 방법이 없습니다.
— sleske

Windows의 일부 측면은 대소 문자를 구분할 수 있지만 다른 PC의 기능에 의존합니다. 실제로 Linux PC에있는 공유 디렉토리에 저장하면 대소 문자 구분 파일 이름을 사용할 수 있습니다. 이 @sleske 같은 파일 시스템이 없습니다 "그것의 윈도우"때문에, 상기 때문이다
— UtahJarhead

1
이것은 전적으로 사실이 아닙니다. UNIX 용 Windows 서비스에서 여러 버전의 Windows와 일부 데스크톱 버전을 대 / 소문자를 구분하도록 만들 수 있습니다.
— Keltari

1
@Matt이 답변은 옳지 않습니다 (적절한 답변이 게시되어 있지만). 대소 문자 구분 기능이 활성화되어 있지 않습니다. superuser.com/questions/266110/… testfile과 Testfile이라는 파일을 하나 제출해야합니다. /bIn/BaSh내 시스템에서 작동하지 않습니다.
— William

8

실제로 이것은 사용자가 사용하는 API / Windows 하위 시스템 (프로그램)에 따라 다릅니다.

" Windows API "(Windows 앱의 표준)를 사용하는 경우 파일 이름은 대소 문자를 구분하지 않습니다. 그러나 POSIX 하위 시스템 (일명 Windows Services for Unix)을 사용하는 경우 대 / 소문자를 구분할 수 있습니다.

예를 들어이 MS 지원 기사 : Windows XP 및 Interix 하위 시스템 또는 SFU에서 대소 문자 구분 동작 사용


5

Cygwin은 Unix를 모방하려고합니다. 따라서 응용 프로그램을 중단하지 않으려면 대 / 소문자를 구분해야합니다. Windows 자체는 대소 문자를 구분하지 않습니다. 파일 시스템에 관한 것입니다. 자세한 내용은 파일 시스템, Microsoft Windows의 파일 시스템 (Wikipedia)에서 확인할 수 있습니다.


옳은. NTFS 는 대소 문자를 구분하며 Windows에서만 비활성화됩니다. 하나는 그것을 가능하게 할 수 있지만 unsupported말하자면 ..so입니다.
— Apache

이것은 MijndertStuij가 아닌 OP에 관한 것이지만, 나는 그의 발가락을 밟고 싶지 않았습니다. 그는 이것에 대한 담당자를받을 자격이 있습니다. FAT (원래 MS-DOS 및 Windows 버전) 또는 NTFS (Windows NT 이상)이든 모두 대소 문자를 구분하지 않습니다. Samba (파일 및 인쇄 공유의 사촌)를 통해 Linux 파일 시스템에 파일을 저장하면 이러한 차이가 약간 나타납니다.
— UtahJarhead

Wikipedia NTFS 페이지에서 : 파일 이름에 허용되는 문자. -Posix 네임 스페이스에서 U + 0000 (NUL) 및 / (슬래시)를 제외한 모든 UTF-16 코드 단위 (대소 문자 구분). Win32 네임 스페이스에서 U + 0000 (NUL) / (슬래시) \ (백 슬래시)를 제외한 모든 UTF-16 코드 단위 (대소 문자 구분) : (콜론) * (별표)? (물음표) "(인용 부호) <(보다 작음)> (보다 큼) 및 | (파이프) [5]
— UtahJarhead

/bIn/BaShCygwin에서 실행 을 시도 하고 대소 문자를 구분한다고 다시 알려주십시오.
— Matt

5

Microsoft는 NTFS 디렉터리 (폴더)에 적용 할 수있는 새로운 대소 문자 구분 플래그 (속성)를 추가했습니다. 이 플래그가 설정 (활성화) 된 디렉토리의 경우 FILE_FLAG_POSIX_SEMANTICS의 지정 여부에 관계없이 해당 디렉토리의 파일에 대한 모든 조작은 대소 문자를 구분합니다. 즉, 대소 문자 구분으로 표시된 디렉토리에서 대소 문자 만 다른 두 개의 파일이 있으면 모든 응용 프로그램이 해당 파일에 액세스 할 수 있습니다.

시작 윈도우 10 빌드 17107 , Microsoft는 확인하고 fsutil.exe 명령에이 플래그를 수정할 수있는 기능을 추가했다.

디렉토리가 대소 문자를 구분하는지 확인하려면 다음 명령을 실행하십시오.

fsutil.exe file queryCaseSensitiveInfo <path>

디렉토리를 대소 문자를 구분하거나 대소 문자를 구분하지 않으려면 다음을 수행하십시오.

fsutil.exe file setCaseSensitiveInfo <path> enable
fsutil.exe file setCaseSensitiveInfo <path> disable

4

여기 부터 입니다. 다른 작성자가 제안한대로 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive레지스트리 값을 설정할 수 있습니다 0. add.reg다음 컨텐츠로 이름이 지정된 파일을 작성 하고 실행하십시오.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"obcaseinsensitive"=dword:00000000

그런 다음 Cygwin 을 사용 하여 대소 문자를 구분하는 파일 이름으로 작업하십시오.

이렇게하려면 이 문서에서 제안하는 것처럼 posix=1옵션에 NTFS 파일 시스템을 마운트해야 합니다. 내 스 니펫은 다음과 같습니다 ./etc/fstabfstab

none                    /cygdrive       cygdrive        binary,posix=1,user             0 0
C:                      /cygdrive/c     ntfs            binary,posix=1,user,auto        0 0
C:/Users                /home           ntfs            binary,posix=1,user,auto        0 0

위의 작업이 완료되면, 당신은 사용하여 대소 문자를 구분 파일 이름을 처리 할 수 있습니다 bash, mc, git등

둘 다 편집 한 후 다시 부팅하십시오.


3

Barfieldmv가 정확합니다. 파일 시스템은 실제로 대소 문자를 구분하며 파일은 적절한 대소 문자와 함께 저장됩니다. 파일 액세스 계층은 파일을 새 파일 설명자와 일치시킬 때 케이스를 제거합니다.


1
파일 시스템과 사용자 간의 추상화에 대한 자세한 내용을 제공 할 수 있습니까 (예 : 단계별 예제 제공)? 또한 이전 OS에 대한 op의 실제 질문과 대소 문자 구분 동작을 강제 할 수 있는지 여부도 다루어야합니다.
— MaQleod

나는 지금 대단한 리눅스 대단하기 때문에 지금은 완전한 답변을 제공 할 수 없습니다. 그러나 나는 다음을 제공 할 수 있습니다. Windows Services for Unix는 특히 대소 문자를 구분하지 않는 API를 사용하지 않음으로써 운영 체제와 동일한 파일 시스템을 사용합니다. Case 'Preserving'이 Case 'Sensitive'와 동일한 방식에 대한 정보는 support.microsoft.com/kb/817921 을 참조하십시오. 그러나 일반 액세스 계층에서는 Case 'Ignorance'를 허용합니다. :)
— whardier

창은 대소 문자를 구분하지 않지만 대소 문자를 구분한다고 말할 수 있습니다. 즉, 글자가 대문자인지 소문자인지 알 수 있으며 (두 글자 모두 허용) 하나 또는 다른 것으로 및 오류를 읽지 않습니다.
— IGRACH
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.