Có phải tất cả các phiên bản của trường hợp Windows không nhạy cảm?


18

Tôi biết hệ điều hành Windows (nói chung) không phân biệt chữ hoa chữ thường. Điều này có đúng với tất cả các HĐH Windows (từ Windows 95 cho đến Windows 7) không? Có bất kỳ thiết lập đăng ký để làm cho trường hợp Windows nhạy cảm?


2
Có, như tất cả các phiên bản của MS-DOS từ nơi thuộc tính này được kế thừa. (Tất nhiên MS-DOS không bảo quản trường hợp, vì vậy mọi thứ đã tiến lên phía trước :-).)
Richard

Trường hợp không nhạy cảm với những gì? Tên tập tin? Mật khẩu?
Peter Mortensen

Câu trả lời:


15

Vâng, điều này đúng với tất cả các phiên bản Windows. Không có cách nào để làm cho trường hợp Windows nhạy cảm. Hãy ghi nhớ rằng một số ứng dụng ban đầu được phát triển cho Unix / Linux và sau đó được chuyển có thể phân biệt chữ hoa chữ thường. Cygwin, ví dụ, là trường hợp nhạy cảm. Hành vi này là cực kỳ hiếm mặc dù.


7
"Không có cách nào để làm cho trường hợp Windows nhạy cảm." không phải là khá chính xác. Có nhiều cách để làm cho các phần của Windows phân biệt chữ hoa chữ thường, như được giải thích trong các câu trả lời khác.
sleske

Mặc dù theo quan điểm của người dùng , tên tệp Windows không phân biệt chữ hoa chữ thường và không có cách nào (dễ dàng) để thay đổi điều đó.
sleske

Một số khía cạnh của Windows có thể được làm cho phân biệt chữ hoa chữ thường, nhưng nó phụ thuộc vào khả năng của các PC khác. Lưu vào thư mục dùng chung thực sự trên PC Linux sẽ cho phép sử dụng tên tệp phân biệt chữ hoa chữ thường. Điều này là do PHIM LỌC như @sleske đã nói, không phải vì "đó là Windows"
UtahJarhead

1
Điều này không hoàn toàn đúng. Bạn có thể làm cho các phiên bản sever của Windows và một số trường hợp phiên bản máy tính để bàn nhạy cảm với Windows Services cho UNIX.
Keltari

1
@Matt Câu trả lời này không đúng (mặc dù chúng là câu trả lời thích hợp được đăng). Bạn không kích hoạt trường hợp nhạy cảm. superuser.com/questions/266110/ Đài tôi phải gửi một tệp có tên testfile và Testfile. /bIn/BaShkhông hoạt động trên hệ thống của tôi.
William

8

Trên thực tế, điều này phụ thuộc vào hệ thống con API / Windows mà bạn (chương trình của bạn) sử dụng.

Nếu bạn sử dụng " API Windows " (tiêu chuẩn cho các ứng dụng Windows), thì tên tệp không phân biệt chữ hoa chữ thường. Tuy nhiên, nếu bạn sử dụng hệ thống con POSIX (còn gọi là Windows Services cho Unix), bạn có thể kích hoạt phân biệt chữ hoa chữ thường.

Xem ví dụ: bài viết Hỗ trợ MS này: Kích hoạt hành vi phân biệt chữ hoa chữ thường với Windows XP và Hệ thống con Interix hoặc SFU


5

Cygwin cố gắng mô phỏng Unix. Vì vậy, nó cần phải kế thừa trường hợp nhạy cảm để không phá vỡ các ứng dụng. Bản thân Windows không phân biệt chữ hoa chữ thường. Đó là về hệ thống tập tin. Bạn có thể đọc thêm về nó trong Hệ thống tệp, Hệ thống tệp trong Microsoft Windows (Wikipedia).


Chính xác. NTFS trường hợp nhạy cảm, nó chỉ bị vô hiệu hóa trong Windows. Người ta có thể kích hoạt nó nhưng nó cực kỳ unsupported.. cũng có thể nói.
Apache

Điều này được hướng đến OP chứ không phải MijndertStuij, nhưng tôi không muốn bước lên ngón chân của anh ấy. Anh ấy xứng đáng với đại diện này. Cho dù đó là FAT (như phiên bản MS-DOS và Windows gốc) hay NTFS (Windows NT trở lên), tất cả đều không phân biệt chữ hoa chữ thường. Bạn sẽ nhận thấy những khác biệt này một chút nếu bạn lưu tệp vào hệ thống tệp Linux qua Samba (Anh em họ và chia sẻ tệp).
UtahJarhead

Từ trang Wikipedia NTFS: Các ký tự được phép trong tên tệp. - Trong không gian tên Posix, mọi đơn vị mã UTF-16 (phân biệt chữ hoa chữ thường) trừ U + 0000 (NUL) và / (dấu gạch chéo). Trong không gian tên Win32, bất kỳ đơn vị mã UTF-16 nào (không phân biệt chữ hoa chữ thường) ngoại trừ U + 0000 (NUL) / (dấu gạch chéo) \ (dấu gạch chéo ngược): (dấu hai chấm) * (dấu hoa thị)? (Dấu hỏi) "(trích dẫn) <(nhỏ hơn)> (lớn hơn) và | (ống) [5]
UtahJarhead

Hãy thử chạy /bIn/BaShtrong Cygwin và nói với tôi một lần nữa rằng đó là trường hợp nhạy cảm.
Matt

5

Microsoft đã thêm một cờ phân biệt chữ hoa chữ thường (thuộc tính) có thể được áp dụng cho các thư mục (thư mục) NTFS. Đối với các thư mục được đặt cờ này (được bật), tất cả các thao tác trên các tệp trong thư mục đó đều phân biệt chữ hoa chữ thường, bất kể FILE_FLAG_POSIX_SEMANTICS có được chỉ định hay không. Điều này có nghĩa là nếu bạn có hai tệp chỉ khác nhau theo từng trường hợp trong một thư mục được đánh dấu là phân biệt chữ hoa chữ thường, tất cả các ứng dụng sẽ có thể truy cập chúng.

Bắt đầu với Windows 10 build 17107 , Microsoft đã thêm khả năng xem và sửa đổi cờ này thành lệnh fsutil.exe.

Để kiểm tra xem một thư mục có phân biệt chữ hoa chữ thường hay không, hãy chạy lệnh sau:

fsutil.exe file queryCaseSensitiveInfo <path>

Để đánh dấu một thư mục là phân biệt chữ hoa chữ thường hoặc chữ hoa chữ thường tương ứng:

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

4

Đây là từ đây . Bạn có thể đặt HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitivegiá trị đăng ký thành0 như các tác giả khác đề xuất. Tạo một tệp có tên add.regvới nội dung sau đây và chạy nó.

Windows Registry Editor Version 5.00

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

Sau đó sử dụng Cygwin để làm việc với tên tệp phân biệt chữ hoa chữ thường.

Để làm như vậy, bạn cần gắn hệ thống tệp NTFS với posix=1tùy chọn trong /etc/fstab, như bài viết này đề xuất. Đây là một đoạn từ tôifstab :

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

Sau khi hoàn thành việc trên, bạn sẽ có thể xử lý tên tệp phân biệt chữ hoa chữ thường bash , mc, git, vv

Đảm bảo khởi động lại sau khi chỉnh sửa cả hai.


3

Barfieldmv là chính xác. Hệ thống tập tin thực sự phân biệt chữ hoa chữ thường và tệp được lưu trữ với trường hợp thích hợp của chúng. Lớp truy cập tệp chịu trách nhiệm loại bỏ trường hợp khi khớp tệp với mô tả tệp mới


1
Bạn có thể cung cấp thêm chi tiết về cách trừu tượng hóa giữa hệ thống tập tin và người dùng hoạt động (nghĩa là cung cấp một ví dụ từng bước)? Bạn cũng nên giải quyết các câu hỏi thực tế của op trên các HĐH trước và liệu hành vi phân biệt chữ hoa chữ thường có thể bị ép buộc hay không.
MaQleod

Tôi sẽ không thể cung cấp một câu trả lời rất đầy đủ ngay bây giờ vì bây giờ tôi là một mọt sách Linux khổng lồ .. Tuy nhiên tôi có thể cung cấp những điều sau đây. Windows Services cho Unix sử dụng các hệ thống tệp giống như hệ điều hành, đặc biệt, bằng cách không sử dụng các API cho phép không phân biệt chữ hoa chữ thường. Xem: support.microsoft.com/kb/817921 để biết thông tin về cách Trường hợp 'Bảo quản' giống như Trường hợp 'Nhạy cảm' tuy nhiên các lớp truy cập phổ biến cho phép Trường hợp 'Vô minh' :)
whardier

Bạn có thể nói rằng các cửa sổ không phân biệt chữ hoa chữ thường, nhưng chỉ cần biết trường hợp. Điều đó có nghĩa là nó (windows) biết nếu chữ cái là chữ hoa hay chữ thường và nó chấp nhận cả hai. Nó không đọc cái này hay cái kia và lỗi.
IGRACH
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.