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?
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?
Câu trả lời:
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ù.
/bIn/BaShkhông hoạt động trên hệ thống của tôi.
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
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).
unsupported.. cũng có thể nói.
/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.
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
Đâ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.
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