มันควรจะดี Windows Explorer ทำงานได้ดีในการแสดงชื่อไฟล์อย่างถูกต้อง ฉันใช้สิ่งนี้ใน smb.conf ของฉันเพื่อให้แน่ใจว่าสิ่งที่ฉันพิมพ์ใน Explorer คือสิ่งที่ Samba ใช้ (ฉันตั้งค่าทั้งหมดต่อการแชร์เหล่านี้):
case sensitive = True
default case = lower
preserve case = yes
short preserve case = yes
ฉันวิ่งผ่านการทดสอบอย่างรวดเร็ว (Samba 3.0.24 ที่ส่วนหลัง, WinXP ที่ด้านหน้า) ไฟล์ถูกสร้างขึ้นบนเซิร์ฟเวอร์ samba ผ่านเซสชัน SSH
$ cd /some/samba/share/path
$ mkdir test
$ cd test
$ mkdir test1 TEST1
$ touch test1/foo TEST1/bar
หลังจากนี้ฉันเรียกดูไดรฟ์ที่แมปไปยังไดเรกทอรีทดสอบ ฉันเห็นทั้งไดเรกทอรี "test1" และ "TEST1" ฉันเปิด "test1" และเห็นไฟล์ "foo" ฉันเปิด "TEST1" และเห็นไฟล์ "บาร์" จนถึงตอนนี้ดีมาก
จากนั้นฉันกลับไปที่ไดเรกทอรีทดสอบและในหน้าต่าง Explorer เปลี่ยนชื่อ TEST1 เป็น TEST2 Windows เปิดใช้งานเล็กน้อย - เปลี่ยนชื่อโฟลเดอร์จากนั้นแสดงทั้งสองโฟลเดอร์เป็น TEST2 - ดูเหมือนจะเปลี่ยนชื่อทั้งสองโฟลเดอร์ แต่ในเทอร์มินัล SSH ฉันได้ตรวจสอบ:
$ ls
test1 TEST2
ดังนั้น Windows จึงเปลี่ยนชื่อไฟล์และแซมบ้าได้ชื่อไฟล์อย่างถูกต้อง เมื่อฉันกด F5 ในหน้าต่าง Explorer เพื่อรีเฟรชเนื้อหาของโฟลเดอร์จอแสดงผลจะเปลี่ยนเพื่อแสดงชื่อโฟลเดอร์ที่ถูกต้อง
Caveat:ระบบไฟล์ Linux อนุญาตให้ใช้อักขระบางตัวที่ Windows ไม่ได้ (เช่น ":") Samba มีตัวเลือก "name mangling"เพื่อเปลี่ยนชื่อไฟล์เหล่านั้นให้เป็นสิ่งที่ Windows จะชอบ ถ้าฉันสร้างไฟล์ชื่อ "FA: 23" ในหน้าต่าง SSH ของฉัน Samba จะเปลี่ยนชื่อเป็น "F7T4H0 ~ F" และนั่นคือสิ่งที่ปรากฏในหน้าต่าง Explorer
case sensitive
เปิดใช้งานตัวเลือก คุณควรใช้auto
ตัวเลือกในกรณีนี้