นามสกุลไฟล์เล็กและใหญ่ใน Windows และ Linux


10

ใน linux คุณสามารถมีไฟล์example.JPGและexample.jpgในไดเรกทอรีเดียวกัน

ใน Windows คุณมีส่วนขยายที่เล็กและใหญ่ แต่คุณไม่สามารถวางไฟล์ทั้งสองนี้ไว้ในไดเรกทอรีเดียวกันได้ ทำไมจะไม่ล่ะ?


1
มีความเป็นไปได้ที่ซ้ำกันของ Windows case ทุกรุ่นไม่ตอบสนองหรือไม่ (อาจมีคำถามที่ดีกว่านั้น)
โคลจอห์นสัน

FAT จัดเก็บส่วนขยายแยกต่างหากจากชื่อฐานและระบบปฏิบัติการได้เพิ่ม.วัตถุประสงค์สำหรับอินพุตและจอแสดงผล (ฉันเชื่อว่ามันปลอดภัยที่จะบอกว่าไม่มีใครใช้ FAT สำหรับทุกอย่างยกเว้นการทำงานร่วมกันในปัจจุบัน) ฉันไม่รู้ว่า NTFS ทำอย่างไร แต่ฉันคิดว่ามันคล้ายกับทุกระบบไฟล์ Linux ที่สำคัญซึ่งใช้ชื่อไฟล์ว่า สตริงของอักขระ ไม่มีอะไรพิเศษเกี่ยวกับนามสกุลไฟล์: มันเป็นเพียงการประชุมและได้รับการปฏิบัติโดยระบบไฟล์ในฐานะเป็นส่วนหนึ่งของชื่อไฟล์
CVN

ค้นหาObCaseInsensitiveและsuperuser.com/q/266110/59271
541686

@grawity นั่นไม่ใช่แค่กรณีของ tomayto, tomahto?
wvdz

คำตอบ:


32

ใน Windows คุณมีส่วนขยายที่เล็กและใหญ่ แต่คุณไม่สามารถวางไฟล์ทั้งสองนี้ไว้ในไดเรกทอรีเดียวกันได้ ทำไมจะไม่ล่ะ?

หากไดรฟ์ที่มีการจัดรูปแบบเป็น NTFS คุณสามารถมีทั้งและexample.JPGexample.jpg

อย่างไรก็ตามหากคุณพยายามเปิดไฟล์ใดไฟล์หนึ่งในแอปพลิเคชัน Win32เช่น Notepad คุณจะสามารถเข้าถึงไฟล์ได้เพียงไฟล์เดียวไม่ว่ากรณีของชื่อไฟล์ที่คุณพิมพ์ในกล่องโต้ตอบเปิดไฟล์จะเป็นอย่างไร


ชื่อไฟล์เป็น Case Sensitive บนไดรฟ์ NTFS

ในฐานะที่เป็นส่วนหนึ่งของข้อกำหนดสำหรับการปฏิบัติตาม POSIX ระบบไฟล์ Windows NT (NTFS) จะจัดเตรียมไฟล์และการตั้งชื่อไดเรกทอรีตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ แม้ว่า NTFS และ POSIX ระบบย่อยแต่ละกรณีจับไวดี 16 บิตที่ใช้ Windows, MS-DOS, OS / 2-based และการใช้งานที่ใช้ Win32 ไม่

ใน NTFS คุณสามารถสร้างชื่อไฟล์ที่ไม่ซ้ำกันซึ่งจัดเก็บในไดเรกทอรีเดียวกันซึ่งแตกต่างกันเฉพาะในกรณีที่ ตัวอย่างเช่นชื่อไฟล์ต่อไปนี้สามารถอยู่ร่วมกันในไดเรกทอรีเดียวบนไดรฟ์ข้อมูล NTFS:

CASE.TXT
case.txt
case.TXT

อย่างไรก็ตามหากคุณพยายามเปิดไฟล์ใดไฟล์หนึ่งในแอปพลิเคชัน Win32เช่น Notepad คุณจะสามารถเข้าถึงไฟล์ได้เพียงไฟล์เดียวไม่ว่ากรณีของชื่อไฟล์ที่คุณพิมพ์ในกล่องโต้ตอบเปิดไฟล์จะเป็นอย่างไร

...

NTFS สนับสนุนโหมดการทำงานที่แตกต่างกันสองโหมดเล็กน้อยซึ่งสามารถเลือกได้โดยระบบย่อยของแอปพลิเคชันที่ทำงานกับ NTFS อันแรกนั้นจะตรงตามตัวพิมพ์ใหญ่ - เล็กและต้องการชื่อไฟล์ที่แอพพลิเคชั่นจัดหาให้ตรงกับชื่อที่เก็บไว้ในดิสก์ โหมดที่สองของการดำเนินการคือการรักษากรณี แต่ไม่ได้ตรงตามตัวพิมพ์ใหญ่ - เล็ก ซึ่งหมายความว่าแอปพลิเคชันสามารถเลือกไฟล์บนดิสก์ได้แม้ว่าชื่อที่ให้มาจะแตกต่างกันในกรณีที่ชื่อนั้นถูกเก็บไว้ในดิสก์ โปรดทราบว่าโหมดทั้งสองรักษากรณีและปัญหาที่ใช้ในการสร้างไฟล์ ความแตกต่างในพฤติกรรมที่ระบุไว้ที่นี่จะใช้เฉพาะเมื่อแอปพลิเคชันต้องการค้นหาไฟล์ที่มีอยู่ POSIX ใช้ประโยชน์จากโหมดตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ขณะที่ MS-DOS, WOW และระบบย่อย Win32 ใช้กรณีโหมดตาย

ชื่อไฟล์แหล่งที่มาเป็นแบบตรงตามตัวพิมพ์ใหญ่ - เล็กบน NTFS เล่ม :


ในทางปฏิบัติฉันไม่สามารถทำสิ่งนี้ได้

เพื่อให้บรรลุสองไฟล์ในไดเรกทอรีเดียวกันที่แตกต่างกันโดยเฉพาะกรณีที่คุณต้องเปิดใช้งานระบบย่อยPosix

POSIX ใช้ประโยชน์จากโหมดการพิจารณาตัวพิมพ์ใหญ่และตัวเล็กในขณะที่ระบบย่อย MS-DOS, WOW และ Win32 ใช้โหมดที่ไม่สนใจตัวพิมพ์เล็กและใหญ่

วิธีเปิดใช้งาน Posix โปรดดู:


นี่คือข่าวสำหรับฉัน ฉันต้องลงคะแนนชั่วคราวนี้เพราะแม้ว่าคุณจะมีการอ้างอิง แต่ในทางปฏิบัติฉันไม่สามารถทำสิ่งนี้ได้ คุณจะให้คำแนะนำเกี่ยวกับวิธีการนี้สามารถทำได้ในทางปฏิบัติหรือไม่?
MDMoore313

7
@BigHomie นั่นคือ Windows เชลล์ที่ป้องกันคุณ NTFS สามารถเก็บ a.JPG และ a.jpg ในไดเรกทอรีเดียวกัน หากคุณเปิดใช้งานระบบย่อย Unix (คัดค้าน) ชื่อไฟล์จะเป็นแบบตรงตัวพิมพ์ใน Windows Explorer Shell ด้วย technet.microsoft.com/en-us/library/cc771470.aspx
Furkan Omay

1
@ FurkanOmay ผมเห็นว่าระบบย่อยยูนิกซ์เก่าดีขอบคุณสำหรับสิ่งนั้น
MDMoore313

1
@ FurkanOmay ฉันรู้ว่าคุณหมายถึงอะไร)
MDMoore313

@BigHomie คำตอบอัปเดตเพื่ออธิบายวิธีเปิดใช้งาน posix
DavidPostill

6

NTFS คือ Case Sensitive (และขึ้นอยู่กับว่าคุณดูแก้วมันอาจจะเป็นสิ่งที่ดีหรือไม่ดี) ในความเป็นจริงการได้รับ Case Insensitivity เป็นความท้าทายในช่วงแรกเนื่องจากคุณไม่ต้องแยกความแตกต่างระหว่างค่า ASCII สำหรับ az & AZ

ไม่มีทางที่จะทำให้ Windows (OS) เป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ถึงแม้ว่า NTFS (ระบบไฟล์) ที่ใช้โดยระบบปฏิบัติการ Windows ของทุกวันนี้สามารถรองรับเพื่อให้สอดคล้องกับ POSIX

ตาม Microsoft คุณอาจมี example.JPG และ example.jpg ในไดเรกทอรีเดียวกันบน NTFS ( คลิกที่นี่ ) แต่ระบบปฏิบัติการ (Windows ทุกรุ่น) ไม่รองรับซึ่งทำให้ระบบไฟล์ไม่มีจุดหมาย :)

ในฐานะที่เป็นส่วนหนึ่งของข้อกำหนดสำหรับการปฏิบัติตาม POSIX ระบบไฟล์ Windows NT (NTFS) จะจัดเตรียมไฟล์และการตั้งชื่อไดเรกทอรีตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ แม้ว่า NTFS และระบบย่อย POSIX จะจัดการกับความไวของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่16 บิตที่ใช้ Windows, MS-DOS, OS / 2, และแอพพลิเคชั่นที่ใช้ Win32 ไม่รองรับ


1
ความรู้สึกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่นั้นไม่ยากโดยเฉพาะอย่างยิ่งในการเข้ารหัสเช่น ASCII DOS ทำแล้ว CP / M ทำได้ Case insensitivity พร้อมกับ case อนุรักษ์เป็น nut ยากที่จะถอดรหัส แน่นอนว่าไม่ใช่เรื่องยากที่จะทำ แต่ยากที่จะทำในลักษณะที่สอดคล้องกันเมื่อคุณโชคดีที่มี RAM ขนาด 16-32 KB ให้เล่นด้วยและต้องถือแอปพลิเคชันที่ทำสิ่งที่มีประโยชน์จริง ๆ ด้วย
CVN
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.