모든 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.