Phần mở rộng tệp phân biệt chữ hoa chữ thường trong Windows và Linux


10

Trong linux bạn có thể có các tập tin example.JPGexample.jpgtrong cùng một thư mục.

Trong Windows, bạn có các phần mở rộng phân biệt chữ hoa chữ thường, nhưng bạn không thể đặt hai tệp này trong cùng một thư mục. Tại sao không?


1
Có thể trùng lặp tất cả các phiên bản của trường hợp Windows không nhạy cảm? (có lẽ có một câu hỏi hay hơn thế)
Cole Johnson

FAT giữ phần mở rộng tách biệt với tên cơ sở và HĐH đã thêm .mục đích đầu vào và hiển thị. (Tôi tin rằng thật sự an toàn khi nói rằng thực tế không ai sử dụng FAT cho bất cứ điều gì ngoại trừ khả năng tương tác ngày nay.) Tôi không biết chính xác NTFS hoạt động như thế nào, nhưng tôi cho rằng nó giống với mọi hệ thống tệp Linux chính, chỉ đơn giản coi tên tệp là một chuỗi các ký tự. Không có gì đặc biệt ở phần mở rộng tệp: nó chỉ đơn giản là theo quy ước và được hệ thống tệp xử lý như một phần của tên tệp.
một CVn

Tra cứu ObCaseInsensitivesuperuser.com/q/266110/59271
user541686 24/2/2015

@grawity không phải chỉ là một trường hợp của tomayto, tomahto?
wvdz

Câu trả lời:


32

Trong Windows, bạn có các phần mở rộng phân biệt chữ hoa chữ thường, nhưng bạn không thể đặt hai tệp này trong cùng một thư mục. Tại sao không?

Nếu một ổ đĩa được định dạng là NTFS, bạn có thể có cả hai example.JPGexample.jpg.

Tuy nhiên, nếu bạn cố mở một trong các tệp này trong ứng dụng Win32 , chẳng hạn như Notepad, bạn sẽ chỉ có quyền truy cập vào một trong các tệp , bất kể trường hợp tên tệp bạn nhập trong hộp thoại Mở tệp.


Tên tệp là phân biệt chữ hoa chữ thường trên các tệp NTFS

Là một phần của các yêu cầu tuân thủ POSIX, Hệ thống tệp Windows NT (NTFS) cung cấp quy ước đặt tên tệp và thư mục phân biệt chữ hoa chữ thường. Mặc dù hệ thống con NTFS và POSIX, mỗi hệ thống đều xử lý tốt độ nhạy trường hợp, các ứng dụng dựa trên Windows 16-bit, dựa trên MS-DOS, dựa trên OS / 2 và Win32 không dựa trên Windows .

Trong NTFS, bạn có thể tạo tên tệp duy nhất, được lưu trữ trong cùng thư mục, chỉ khác nhau trong trường hợp. Ví dụ: tên tệp sau có thể cùng tồn tại trong một thư mục trên ổ đĩa NTFS:

CASE.TXT
case.txt
case.TXT

Tuy nhiên, nếu bạn cố mở một trong các tệp này trong ứng dụng Win32 , chẳng hạn như Notepad, bạn sẽ chỉ có quyền truy cập vào một trong các tệp , bất kể trường hợp tên tệp bạn nhập trong hộp thoại Mở tệp.

...

NTFS hỗ trợ hai chế độ hoạt động hơi khác nhau có thể được lựa chọn bởi hệ thống con của ứng dụng tương tác với NTFS. Đầu tiên là hoàn toàn phân biệt chữ hoa chữ thường và yêu cầu tên tệp do ứng dụng cung cấp khớp với tên được lưu trên đĩa bao gồm cả trường hợp nếu tệp trên đĩa được chọn. Chế độ hoạt động thứ hai là bảo quản trường hợp nhưng không phân biệt chữ hoa chữ thường. Điều này có nghĩa là các ứng dụng có thể chọn các tệp trên đĩa ngay cả khi tên được cung cấp khác với trường hợp tên được lưu trên đĩa. Lưu ý rằng cả hai chế độ bảo quản trường hợp được sử dụng để tạo các tệp. Sự khác biệt trong hành vi được lưu ý ở đây chỉ áp dụng khi một ứng dụng cần xác định vị trí tệp hiện có. POSIX tận dụng chế độ phân biệt chữ hoa chữ thường, trong khi MS-DOS, WOW vàCác hệ thống con Win32 sử dụng chế độ không phân biệt chữ hoa chữ thường .

Tên tệp nguồn là phân biệt chữ hoa chữ thường trên các tệp NTFS :


Trong thực tế, tôi đã không thể thực hiện được điều này

Để đạt được hai tệp trong cùng một thư mục chỉ khác nhau tùy theo trường hợp bạn cần kích hoạt hệ thống con Posix .

POSIX tận dụng chế độ phân biệt chữ hoa chữ thường, trong khi các hệ thống con MS-DOS, WOW và Win32 sử dụng chế độ không phân biệt chữ hoa chữ thường.

Để bật Posix, xem:


Tin mới đối với tôi. Tôi đã phải hạ cấp điều này tạm thời mặc dù vì mặc dù bạn có trích dẫn, nhưng trong thực tế, tôi không thể thực hiện được điều này . Bạn có phiền khi cung cấp hướng dẫn về cách thực hiện điều này trong thực tế không?
MDMoore313

7
@BigHomie Đó là Windows shell, thứ đang ngăn cản bạn. NTFS có thể chứa a.JPG và a.jpg trong cùng một thư mục. Nếu bạn bật Hệ thống con Unix (không dùng nữa), tên tệp cũng sẽ phân biệt chữ hoa chữ thường trong Windows Explorer Shell. technet.microsoft.com/en-us/l
Library / cc771470.aspx

1
@FurkanOmay Tôi hiểu rồi, hệ thống con unix cũ tốt, cảm ơn vì điều đó.
MDMoore313

1
@FurkanOmay Tôi biết ý của bạn là gì;)
MDMoore313

@BigHomie Trả lời được cập nhật để giải thích cách bật posix
DavidPostill

6

NTFS là Case Sensitive (& tùy thuộc vào cách bạn xem kính, nó có thể là điều tốt hoặc điều xấu). Trong thực tế, đạt được Độ nhạy cảm trường hợp là một thách thức trong những ngày đầu vì bạn KHÔNG phải phân biệt giữa các giá trị ASCII cho az & AZ.

Không có cách nào để làm cho trường hợp Windows (HĐH) nhạy cảm mặc dù NTFS (Hệ thống tệp) được sử dụng bởi Windows OS ngày nay có thể hỗ trợ để tuân thủ POSIX.

Theo Microsoft, bạn có thể có example.JPG và example.jpg trong cùng thư mục trên NTFS ( bấm vào đây ), nhưng HĐH (Tất cả các phiên bản Windows) không hỗ trợ nó khiến cho thực tế Hệ thống tệp có thể trở nên vô nghĩa :)

Là một phần của các yêu cầu tuân thủ POSIX, Hệ thống tệp Windows NT (NTFS) cung cấp quy ước đặt tên tệp và thư mục phân biệt chữ hoa chữ thường . Mặc dù hệ thống con NTFS và POSIX, mỗi hệ thống đều xử lý tốt độ nhạy trường hợp, các ứng dụng dựa trên Windows 16-bit, dựa trên MS-DOS, dựa trên OS / 2 và Win32 không dựa trên Windows.


1
Không phân biệt chữ hoa chữ thường không quá khó, đặc biệt là trong các bảng mã như ASCII. DOS đã làm điều đó, CP / M đã làm điều đó. Không nhạy cảm trường hợp cùng với bảo quản trường hợp là hạt khó nứt hơn. Chắc chắn không khó để làm, nhưng khó hơn để làm một cách nhất quán khi bạn có thể may mắn có được 16-32 KB RAM để chơi và điều đó cũng cần phải giữ một ứng dụng làm những việc thực sự hữu ích.
một CVn
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.